使用INT显示

为什么即使指令109在运行时实际上没有达到指令指针,它也会被执行。 据我所知(C ++背景),处理器一次一个地按顺序处理指令1。 地址100,102,105和107首先执行,那么INT 21如何在下一行(尚未声明)之前显示内存位置109的内容?

(假设我们在调试时输入这些指令)

100 MOV AH,09
102 Dx,109
105 INT 21
107 JMP 100
109 DB 'Hello World', '$' <Enter> <Enter> 

DB不是一条指令,它是伪指令,也就是汇编指令。 它告诉汇编程序在当前地址存储以下数据字节。


程序汇编完成后,汇编器会将你的字符串放在正确的地址。 处理器可以从它未执行的地址读取。 指令指针只有一个指针,你可以从大于指令指针的地址读取而没有问题。 毕竟内存是“随机访问”的。

没有“宣言”。 只有地址。 一些汇编程序有标签,但这些标签由汇编器翻译成汇编后的地址。

链接地址: http://www.djcxy.com/p/80351.html

上一篇: Using INT for Displaying

下一篇: x86 way to tell instruction from data