ASM16 18 循环语句
简单的do-while,先循环再判断
1 | MyStack segment stack |
常规的while写法,先判断再循环
1 | MyStack segment stack |
改进后的while循环,可以减少循环的代码数(和2相比循环的部分少一个 jz LOOP2_END)
1 | MyStack segment stack |
补充知识
段间间接远转移
段间间接原转移的OPR是存储器的地址
1 | JMP DWORD PTR TABLE[BX] |
TABLE是数据段中定义的变量,偏移地址为0010H,(DS)=1000H,BX=0005H
所以TABLE[BX]的地址是10015H,内容是78563412H
低地址内容送IP,高地址内容送CS
所以(IP)=3412H,(CS)=7856H
直接寻址和间接寻址
直接寻址(Direct addressing)是指在指令中明确要操作的数据的地址,处理器可以直接访问该地址并进行读取或写入操作。
1
jmp IF_ELSE_END1
间接寻址(Indirect addressing)是指在指令中给出的是一个指向要操作的数据地址,处理器首先访问该地址,再获取实际数据的地址,最后才进行相应的读/写操作。
1
jmp word ptr [1000]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hexo!