【汇编语言王爽】笔记1-p1-p17

2022-11-13 09:48:17 浏览数 (1)

汇编

指令和数据的表示

总线 地址总线 - 寻址能力 数据总线 - 数据传送能力 控制总线 - 多少种控制 - 控制能力

cpu对存储器的读写

ram 有 主板上的ram 扩展槽上的ram 内存条 显卡上的ram |主板上的ram | 扩展槽上的ram | |- 内存条 -|- 显卡上的ram-|

统一编写地址

8086pc为例

ms dos dos虚拟机

推荐 dos模拟器

访问寄存器和内存

寄存器

最大FFFF

ax- ah al

字长 - 字 word -16位

mov add

汇编不区分大小写

溢出问题

mov ah 0 …

八位加八位 进位的话直接丢掉 不会进到前面

物理地址

都是十六位寄存器 那么他的内部存储 暂存 传输能力也就是16位 - 64KB

20位 物理地址=段地址*16 偏移地址

段地址–内存没有分段 端的划分是cpu做的!!-他自己用的时候怎么分都行

CS DS SS ES

中文名. 代码段寄存器. 外文名. Code Segment. 在CPU执行指令时,通过代码段寄存器(CS,Code Segment)和指令指针寄存器( IP,Instruction Pointer)来确定要执行的下一条指令的内存地址。 在CPU中类似的寄存器有: DS:是 Data Segment 的缩写,翻译为“数据段寄存器”; SS:是 Stack Segment 的缩写,翻译为“堆栈段寄存器”; ES:是 Extra Segment 的缩写,翻译为“附加段寄存器”。

debug 调试程序 看cpu各种寄存器

Debug 神仙

rax ffff改ax

d

一行16B 一次列出128B

d 2000:0 2f 从0到2f

e改变内存neirong

e改变内存

u 将内存中的机器指令翻译为汇编指令 u 地址

手写汇编@@@!!!

A 一汇编格式在内存中写入机器指令 -常用

t执行cs:ip ;;;q退出debug

代码的执行

跳转指令jmp-用户不可能debug来做 必须要有这个指令

jmp 3:0b16同时修改cs ip 也可只修改ip

内存中的字 64位=64位一个字–寄存器大小

注意:4e 20在内存中的存放–低字节在低地址 高字节在高地址 存放为20 4e—读的时候先读高地址单元 在读低地址单元

这样看起来读起来更顺 反过来画内存就可以从上往下读了

错误做法

字单元–对于16位机器-两个连续地址的内存单元组成

ds和【address】配合实现字的传送,从内存中读数据

默认 段地址是ds-----------电路设计

注意 这是电路设计 不能用上一种方式

上面是CS与代码段的问题

下面开始DS与数据段的问题

0 人点赞