汇编语言
CS和IP
- CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址
- CS为代码段寄存器,IP为指令指针寄存器,从名称上我们可以看出它们和指令的关系
如下
mount c d:masm
c:
debug
r
a 2000:0000 //在这个地址输入代码
mov ax,0123
mov bx,0003
mov ax,bx
add ax,bx
d 2000:0000 //查看存入的数据即(机器码)
u 2000:0000 //翻译机器码
r cs //让csip指向2000:0000这个地址来执行代码
2000
r ip
0000
u 2000:0000
t
t
这里也可以使用ds寄存器来进行运算
a
mov ax,2000
mov ds,ax
mov cx,[01]
t
t
t
在汇编语言当中,代码和数据是不加区分的,写上一句代码同时也会被用机器码存放在寄存器当中,这些机器码同时可以进行运算
jmp指令(jump)
- “jmp某一合法寄存器”指令的功能为:用寄存器中的值修改ip
a 2000:0000
mov ax,6622
jmp 1000:3 //跳转到1000:0003那个地址去执行语句,即a语句
mov cx,ax
a 1000:0000
mov ax,0123 //b语句:跳转到这里来了
mov ax,0000 //a语句:跳转到这里来了
mov bx,ax
jmp bx //将ip改成了bx(0000),即跳转到b语句
u 2000:0000
u 1000:0000
t
t
t
t
这一段代码是一个死循环
开始进入循环