assume 寄存器:段名           ;将寄存器和代码段联系一起
段名 segment                 ;一个段的开始
   ...
   ...
段名 ends                     ;一个段的结束

mov ax,4c00H                  ;程序返回
int 21H                        

end                           :标志整个程序结束

单任务操作系统的运行过程:

单任务:p1正在进行,p2在可执行文件中
p2—加载内存
CPU—交付控制权p2
p2运行,p1暂停
p2运行完毕,
CPU—交付控制权p1

执行步骤

  1. 在DosBox下,启动masm.exe,生成目标函数(.obj)
    image.png
  2. 输入源文件(.asm)
    image.png
  3. 输入目标文件(.OBJ),Enter跳过,默认(文件名.OBJ)
    image.png
  4. 输入列表文件(编译器将源程序编译为目标文件过程产生的中间结果),Enter默认不生成
    image.png
  5. 输入交叉引用文件(编译器将源程序译为目标文件过程产生的中间结果),Enter默认不生成
    image.png
  6. 编译成功,生成目标文件(.obj)。
    image.png
  7. 使用link.exe,将目标函数进行连接,从而得到可执行文件(.exe)
    image.png
  8. 输入目标文件(.obj)
    image.png
  9. 输入可执行的文件(.exe),Enter跳过,默认(文件名.exe)
    image.png
  10. 输入连接程序提示输入映像文件的名称,(连接程序将目标文件连接为可执行文件过程中产生的中间结果),Enter默认忽略

     ![image.png](https://i.loli.net/2018/09/08/5b936d58d8a2b.png) 
  11. 输入连接程序提示输入库文件的名称,(库文件里面包含一些可调用的子程序),Enter默认忽略

     ![image.png](https://i.loli.net/2018/09/08/5b936d60d363b.png) 
  12. 连接成功,可忽略此警告,“没用栈段”。得到.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
文章目录