汇编【2】寄存器
这里写目录标题
一、数据寄存器 AX BX CX DX寄存器
1. why
2. 加深印象
2.1 数据与寄存器间 要保证位数一致性
发现:经过了编译
0005为16位数据(2---->16)
0也会编译为16位的0000,因为AX是16位的寄存器
5编译为16位数的05,因为AL为8位寄存器
数据寄存器之间要保证一致性
8位寄存器 给 8位寄存器
8位数据 给8位寄存器
100为16进制---->1 0000 0000(B)
2.2 实验 加法超过寄存器
指令:debug -a
add ax,0008的意思:
ax=ax+0008
8位寄存器进行8位运算,保存8位数据
二、表示内存地址的寄存器
1.地址的计算方式
2. 加深印象
3.检测点
三、指令
1. CPU如何区分指令和数据—(CS IP组合决定)
指令和数据在内存中没有区别
CPU中 CS 段地址寄存器 和 IP 偏移地址寄存器 组合的时候,从中读取内容,当作指令执行
CS IP决定了CPU从哪里开始读取
2. 寄存器和指令
指令 是有长度的,一条指令可以有多个字节构成
指令的执行过程:
3.修改CS IP寄存器的指令—汇编指令jmp
jmp转移指令,可以修改CS IP这两个寄存器,决定了CPU从哪里开始读取指令
两条指令:
jmp 2000:0
jmp 寄存器
结合视频P47
4. 指令执行过程设计的原因—汇编指令call/ret
指令执行的步骤:
1.CPU从CS:IP所指向的内存单元读取指令,存放在指令缓存器中。
2.IP=IP+所读指令的长度,从而指向下一条指令
3.执行指令缓存其中的内容,回到步骤一
5.debug调试工具
5.1 r : 查看所有寄存器中的内容,修改
5.2 d :可以查看内存中的内容
5.3 u : 将机器指令 翻译为汇编指令
5.4 a : 内存中写入 汇编指令的格式
5.5 t : 执行 当前CS:IP所指向的 机器指令
5.6 e : 改写内存中的内容
四、实验
1.
2.
256----100H
3.
B810H10H+0=B8100H
B800H10H+100H=B8100H
4.承上启下
寄存器:
数据寄存器
地址寄存器:段地址寄存器 偏移地址寄存器
AX
BX : 也可被当作 偏移地址寄存器
CX : CX也有其他作用
DX : AX DX用来处理数据
通用寄存器