汇编 | 入门代码篇
assume 寄存器:段名 ;将寄存器和代码段联系一起
段名 segment ;一个段的开始
...
...
段名 ends ;一个段的结束
mov ax,4c00H ;程序返回
int 21H
end :标志整个程序结束
单任务操作系统的运行过程:
单任务:p1正在进行,p2在可执行文件中
p2—加载内存
CPU—交付控制权p2
p2运行,p1暂停
p2运行完毕,
CPU—交付控制权p1
执行步骤
- 在DosBox下,启动masm.exe,生成目标函数(.obj)
- 输入源文件(.asm)
- 输入目标文件(.OBJ),Enter跳过,默认(文件名.OBJ)
- 输入列表文件(编译器将源程序编译为目标文件过程产生的中间结果),Enter默认不生成
- 输入交叉引用文件(编译器将源程序译为目标文件过程产生的中间结果),Enter默认不生成
- 编译成功,生成目标文件(.obj)。
- 使用link.exe,将目标函数进行连接,从而得到可执行文件(.exe)
- 输入目标文件(.obj)
- 输入可执行的文件(.exe),Enter跳过,默认(文件名.exe)
输入连接程序提示输入映像文件的名称,(连接程序将目标文件连接为可执行文件过程中产生的中间结果),Enter默认忽略
![image.png](https://i.loli.net/2018/09/08/5b936d58d8a2b.png)
输入连接程序提示输入库文件的名称,(库文件里面包含一些可调用的子程序),Enter默认忽略
![image.png](https://i.loli.net/2018/09/08/5b936d60d363b.png)
连接成功,可忽略此警告,“没用栈段”。得到.exe可执行文件。
![image.png](https://i.loli.net/2018/09/08/5b936d653493a.png)
源文件
assume cs:abc
abc segment
mov ax,2
add ax,ax
add ax,ax
mov ax,4c00H
int 21H
abc ends
end
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。