欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vscode较详细注释的汇编语言hello world 输出程序,第一个汇编程序

程序员文章站 2022-07-13 21:22:34
...

输出hello world,经典且不失优雅的操作。

在写之前先了解一些知识,会编译连接运行.asm文件

然后看一下汇编程序基本结构,有一点点matlab的感觉

代码段,数据段,附加数据段等。

注释符是分号

具体结构:

;汇编结构

**data SEGMENT; 数据段,数据放到这段
	; 标识符 db/dw 数据;
	 ;定义字符串----   stri  db  "abdcsadabdahsd"
data ENDS**  

edata SEGMENT ;附加数据段
	;附加数据部分.
edata ENDS 

**code SEGMENT  ;代码段,程序具体代码
ASSUME CS:code,DS:data,ES:edata 'data段是数据段DS,code段是代码段CS,ES附加段
    start:
   		;代码区
code ENDS**
END start  ;程序结束,并且程序执行时由start开始执行。

然后是hello world程序:
1.定义数据段:

DATA SEGMENT ;定义数据段
    MYWORD DB  "hello world!!!$";定义数据字符串
DATA ENDS

2.定义代码与具体代码

CODE SEGMENT;定义代码段
    ASSUME CS:CODE,DS:DATA;表明谁是代码段,谁是数据段
start:
    MOV AX,DATA;数据首地址赋值给AX,AX是寄存器,累加器
    MOV DS,AX;使得DS等价于AX,同样指向数据段
    LEA DX,MYWORD;使DX寄存器指向数据变量word首地址
    MOV AH,09h;AH输出数据
    INT 21h;执行AH的09h功能,输出
    MOV AX,4c00h;设置寄存器功能
    INT 21h;调用寄存器功能,结束程序
CODE ENDS

3,结束

END start;代表结束程序并且在start处执行程序

完整代码截图:
vscode较详细注释的汇编语言hello world 输出程序,第一个汇编程序
然后编译连接ok,不知道怎么做的话
可以看我的另一篇总结文章,
dosbox下自动mount
其实vscode有个快捷生成段的方法:
.code
.data
得到
vscode较详细注释的汇编语言hello world 输出程序,第一个汇编程序
但是不知道为什么编译老是不过,最后老实的将_text$00等改了,
知道原因的网友,可以私信告诉我一下,谢啦,共同进步