编辑和调试程序
1. 编辑源程序。用记事本,修改后缀为.asm即可。将源程序放到dos\asm文件夹。

2. 汇编。打开dosbox,输入命令:

lua asm 文件 asm文件怎么编译_寄存器

此时查看asm文件夹,生成了目标文件.obj。

3.连接。先输入link,再输入文件名,之后一直回车。

lua asm 文件 asm文件怎么编译_lua asm 文件_02

此时查看asm文件夹,生成了.exe文件。

4.运行。

在本程序中,打印Y是运行结果。

5.调试。注意是针对可执行程序。debug 文件名.exe。进入调试模式,在短横线后输入命令。

显示内存单元内容的命令D,格式为
-D[地址]或
-D[范围]
修改内存单元内容的命令E,它有两种格式
给定的内容代替指定范围的单元内容
一E地址 内容表
例如
其中FLWX"'"Y""'Z"和8D各占一个字节,用这五个字节代替原内存单元内容,HXH,句""'Z"将分别按它们的ASCII码值代入。
逐个单元相继地修改:
-E地址
例如
一E 100
18E4:0100 89.78
此命令是将原100号单元的内容89改为78。78是程序员键入的
检查和修改寄存器内容的命令R,它有三种方式
显示CPU内部所有寄存器内容和标志位状态,格式为
-R
R命令显示中标志位状态的含义如下表所示
标志名    置位    复位
溢出overflow
方向direction
中断interrupt
符号sign
零zero
辅助进位auxiliary carry
奇偶parity
进位carry    OV
DN
EI
NG
ZR
AC
PE
CY    NV
UP
DI
PL
NZ
NA
PO
NC
显示和修改某个指定寄存器内容,格式为
一R寄存器名
例如打入: -R AX
系统将响应如下:
AX  F1F4
:
表示AX当前内容为FlF4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,
如:
-R BX
BX 0369
:059F
则BX内容由0369改为059F
显示和修改标志位状态,命令格式为
-RF
系统将给出响应,如
OV DN EI NG ZR AC PE CY一
这时若不作修改可按ENTER键,否则在"一'号之后键入修改值,键入顺序任意。如OV DN EI NG ZR AC PE CY-PONZDINV
运行命令G,格式为
一G[=地址1[地址2[地址3...]]
其中地址1规定了运行起始地址,后面的若干地址均为断点地址.
追踪命令T,有两种格式
1)    逐条指令追踪
-T [=地址]
该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。
2)    多条指令追踪
-T [=地址][值]
该命令从指定地址起执行n条命令后停下来,n由[值]确定。
汇编命令A,格式为:
一A  [地址]
该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。
反汇编命令U,有两种格式:
1〉-U[地址]
该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一单元开始显示32个字节。
2)-U范围
该命令对指定范围的内存单元进行反汇编,例如
-U 04BA: 0100 0108 或
-U 04BA: 0100 L9
此二命令是等效的。
命名命令N,格式为
-N文件标识符 [文件标识符]
此命令将两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块内,以便使用L或W命令把文件装入或者存盘。
装入命令L,它有两种功能:
1〉    把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为
一L地址 驱动器 扇区号 扇区数
2)装入指定文件,格式为:
- L [地址]
此命令装入已在CS:5CH中格式化的文件控制块所指定的文件.在用L命令前,BX和CX中应包含所读文件的字节数。
〈10〉写命令W,有两种格式:
1)    把数据写入磁盘的指定扇区:
-W地址 驱动器 扇区号 扇区数
2)    把数据写入指定文件中:
-W [地址]
此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。在用W命令
前,BX和CX中应包含要写入文件的字节数。
退出DEBUG命令Q,该命令格式为:
Q
它退出DEBUG程序,返回DOS,但命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。