汇编语言实验一 指导书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:汇编上机指导及例示
一、实验目的
●了解汇编语言程序的运行环境和所需的系统程序;
二、实验要求
●掌握如何编辑、汇编、连接和运行汇编程序;
●掌握常用的DEBUG命令。

三、实验原理
题:在屏幕上显示一条'THIS IS A SAMPLE PROGRAM OF KEYBOARD AND DISPLAY'提示信息,如从键盘上输入ESC键,则结束程序,如输入的不是大写字母,则在显示器上显示出来,如输入的是大写字母,则转换为小写字母输出。

四、实验设备
计算机
五、实验步骤
1、用用文字编辑工具(常用EDIT或记事本)将源程序输入,其扩展名为.ASM。

2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。

若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

3、用TYPE命令显示产生的.LST文件。

4、用LINK将.OBJ文件连接成可执行的.EXE文件。

5、在DOS状态下运行LINK产生的.EXE文件。

用于调试程序时的输入格式:
DEBUG FILENAME.??? 回车
其中FILENAME是主文件名,???是扩展文件名,例如我们在此前已编译好了一个文件,它的名字为:djx.exe 要对它进行调试时就在DOS提示符下打:DEBUG djx.exe 回车,便可见到 '-' 提示符,如无任何提示说明正确,可进行调试按ESC键可返回DOS。

若未出现预期结果,用DEBUG检查程序。

附: 基本debug操作
1、显示内存单元的内容:-d [地址] 或 [范围]
2、修改内存单元的内容:
-e 地址内容表或-e 地址
3、显示CPU内部寄存器和标志位状态:-r
4、显示和修改某个寄存器的内容:-r 寄存器名
5、汇编命令:-a 地址
6、逐条指令追踪:-t [=地址] (无地址则执行IP所指示的指令)
7、退出debug:-g
8、多条指令追踪:-t [=地址] [n]
注:该指令从指定地址起执行n条命令后停下来
9、运行命令:-g [=地址1] [地址2 [地址3...]]
地址1规定了运行起始地址,后面的地址均为若干断点地址
10、反汇编命令:
(1)-u [地址]
该命令从指定地址开始,反汇编32个字节,若省略地址,则从上一个u命令的最后一条指令的下一单元开始显示32个字节
(2)-u 范围
该命令对指定范围的内存单元进行反汇编
如:-u 04ba:0100 0108
等价于:-u 04ba:0100 L9
下面给出一些常见出错信息,以便查对:
1、Register already defined 汇编内部出现逻辑错误
2、Unknown symbol type 在符号语句的类型中,有些不能识别的东西
3、Symbol is multi-defined 重复定义一个符号
4、Symbol not defined 符号没有定义
5、Syntax error 语句的语法与任何可识别的语法不匹配
6、Symbol is reserved word 企图非法使用一个汇编程序的保留字(例:定义add为一变量)
7、Not proper align/combine type SEGMENT参数不正确
8、One operand must be const 这是加法指令的非法使用
9、Operands must be same or 1 abs 这是减法指令的非法使用
10、Already have base register 试图重复基地址
11、Illegal size for item 引用的项的长度是非法的,(如:双字移位)
12、Illegal register value 指定的寄存器值不能放入“reg”字段
13、Must be AX or AL 某些指令只能用AX或AL
14、Improper use of segment reg 段寄存器使用不合法(如:mov ds,0)
15、Division by 0 or overflow 给出一个用0作除数的表达式
16、Value is out of range 数值大于需要使用的
17、CS register illeal usage 试图非法使用CS寄存器
18、DUP is too large for linker DUP嵌套太长,以至于从连接程序不能得到所要的记录。

相关文档
最新文档