汇编语言
1. 源程序
1.1 伪指令
- 汇编指令是有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行
- 伪指令没有对应的机器指令,最终不被CPU所执行
- 伪指令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作
1.2 段(segment)
段名 segment
.
.
.
段名 ends
- 一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当做栈空间来使用
- 一个源程序中所有将被计算机处理的信息:指令、数据、栈,被划分到了不同的段中
1.3 end
- end是一个汇编程序的结束标记
- 编译器在编译汇编程序的过程中,碰到了end,就结束对源程序的编译
- 注意不要搞混end和ends,ends是和segment成对使用的,标记一个段的结束,ends的含义可以理解为end segment
- 我们这里的end的作用是标记整个程序的结束
1.4 assume
- 这条伪指令的含义为“假设”。它假设某一段寄存器和程序中的某一个用segment…ends定义的段相关联
- 以后记着用assume将有特定用途的段和相关的段寄存器关联起来即可
2. 用源文件写汇编代码
2.1 编写汇编代码
- 首先在masm文件夹内创建一个txt文件,并且编写汇编代码
assume cs:codesg
codesg segment
mov ax,0123h
mov bx,0456h
add ax,bx
add ax,ax
mov ax,4c00h
int 21h //退出程序代码
codesg ends //代表段结束
end //整个程序结束
![image.png](https://i-blog.csdnimg.cn/blog_migrate/52fb4fa372fdbe22d680ee04867f5313.png)
2.2 更改文件后缀
![image.png](https://i-blog.csdnimg.cn/blog_migrate/ffce6a2122ed2d297ac065f91d1a892a.png)
2.3 编译文件
- 打开DOSBox,输入
dir
,然后再输入masm 文件名
,编译该文件并且生成obj文件
mount c d:masm
c:
dir
masm
code
![image.png](https://i-blog.csdnimg.cn/blog_migrate/ce0e8305885bf40dd423382c1d5dc95f.png)
![image.png](https://i-blog.csdnimg.cn/blog_migrate/80004c603538d7c08794edb60eb7c889.png)
![image.png](https://i-blog.csdnimg.cn/blog_migrate/dc6a1fc4dec56cd88d3bf8cb235f2e3b.png)
2.4 链接文件
link
code
![image.png](https://i-blog.csdnimg.cn/blog_migrate/04940509cdf7d486033435b932174262.png)
![image.png](https://i-blog.csdnimg.cn/blog_migrate/053762ccb12f21f09ecd24fbc92bfa3b.png)
2.5 执行文件
debug code.exe //注意这里要加文件后缀名
r
t
t
t
![image.png](https://i-blog.csdnimg.cn/blog_migrate/e7970a647a325e6ed71fa2fc7b83d2ae.png)