8086汇编指令代码分析:Mov、Add、Inc、Dec、Jnz、Int 3
8086汇编指令代码分析:Mov、Add、Inc、Dec、Jnz、Int 3
代码示例:
Mov ax,1000
Mov ds,ax
mov si,200
mov cx,3
add [si],20
inc si
dec cx
jnz $-3
int 3
执行结果:
- 将'1000h'赋给ax寄存器
- 将ax寄存器的值赋给ds寄存器
- 将'200h'赋给si寄存器
- 将'3'赋给cx寄存器
- 将[si]的值加上20
- 将si寄存器的值加1
- 将cx寄存器的值减1
- 如果cx寄存器的值不为0,则跳转到第5步
- 执行中断3指令
状态标识位:
无影响
分析:
第1和第2步将ds寄存器设置为'1000h',将其作为数据段寄存器。第3步将si寄存器设置为'200h',作为要进行操作的内存地址。第4到第6步将[si]的值加上20,并将si寄存器加1,这个过程重复执行3次。第7步判断cx寄存器的值是否为0,由于在第4步时将cx赋为了3,所以这个条件不成立,程序跳转回第5步继续执行。当执行到第4次循环时,[si]的值已经加上了60,即3次每次加20的结果,此时又将[si]的值加上20,所以最终[si]的值为'80h'。最后一步执行中断3指令,程序结束。
原文地址: https://www.cveoy.top/t/topic/npoM 著作权归作者所有。请勿转载和采集!