程序集hello world的描述

时间:2013-09-18 14:36:05

标签: assembly

我对学习汇编(x86)语言感兴趣,并制作了我的第一个hello-world程序。我在windows-xp中使用了调试器,我想知道是否有人可以解释每行的内容。

 1) jmp 115
 2) db 'Hello world!$'
 3) -a 115 
 4) mov ah, 09
 5) mov dx, 102
 6) int 21
 7) int 20

我附上了每个步骤的大纲,以便在程序集中创建可执行文件,

enter image description here

1 个答案:

答案 0 :(得分:4)

我建议您阅读Intel's Software Developer's Manual(特别是第2卷)和/或某些x86汇编教程(例如The Art of Assembly

代码细分:

1) jmp 115

跳转到mov ah,09指令,这样CPU就不会尝试执行'Hello world'字符串,就好像它是代码一样(CPU无法区分代码和数据)。 / p>


2) db 'Hello world!$'

声明一个字符串。美元符号被某些DOS中断函数用作字符串终止符。


3) -a 115

告诉debug汇编从地址115开始的后续代码。


4) mov ah, 09

将值9放入寄存器ah


5) mov dx, 102

将“Hello world”字符串的地址放在寄存器dx


6) int 21

执行中断21h /功能9(write string)。函数编号预期在寄存器ah中,字符串偏移在寄存器dx中,由前两条指令处理。


7) int 20

执行中断20h(terminate program