编译运行过程

  1. 编程 :asm
  2. 编译:obj
  3. 连接:exe
  4. 加载内存中的程序运行

DS寄存器是存的是程序段地址,IP是程序偏移地址,DS:IP是程序起点,程序前面先创建PSP(256字节)(程序段前缀)的数据区,DOS利用PSP和加载的程序进行通信,256字节后为程序区。CS:IP是程序入口,存在程序区。
image.png

inc bx是bx中的内容加1
image.png
注意点:

  1. 在cx中存放循环的次数
  2. loop指令中的标号所标识地址要在前面
  3. 要循环执行的程序段,要写在标号和loop指令的中间

程序框架:
image.png

编写汇编源程序时,数据不能以字母开头,要在前面加“0”。如mov ax 0FFFFH
loop s的原理是cx减一后不为零,loop s是将IP设置为s,实现跳转。s其实是跳转到上一个的地址。

DosBox 中g命令+断点的地址,Debug中的断点操作。使用p命令可跳过循环loop,直接到(cx=0),T命令是实现一步一步执行。
image.png

[bx]:内存单元的偏移地址是bx,如果段前缀没有加任何段地址限定,如cs:[bx],则段地址默认在ds寄存器中。

特别注意: (段地址默认ds寄存器)
image.png

Debug中所有的数据都是用16进制表示
汇编编译器(源程序):16进制(后带H),十进制(不接)。

文章目录