汇编语言程序设计上机步骤与调试方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能
从指定地址开始,对输出的语句汇编 到内存. 执行一个循环直到中断,x代表执行 循环的次数. 结束并退出DEBUG程序. 从指定的端口地址读一个字节,并显 示出来. 将值送到指定端口.
A P Q I O
本章要点及复习重点
4.1 汇编语言基础
1.掌握机器语言、机器语言程序、汇编语言、 汇编语言源程序、汇编、汇编程序等概念。 2.掌握汇编语言中表达式,特别是属性表达式 及属性修改操作符PTR的应用。 3.熟练掌握DB、DW、DD变量定义伪指令的应用 会画出变量定义语句汇编后的存储器分配示 意图。
功能
从指定的地址开始跟踪x条指 令. 在指定的盘,路径下建立文件 从指定地址开始执行程序,到 断点处停下来. 从地址开始的内存块写文件. 将N命令指定的文件调入指定 的内存地址.
T N G W L
DEBUG常用命令汇总表(三)
命令名 格式
格式: 格式: 格式: 格式: 格式: A[地址] P[=地址][x] Q I 端口地址 O 端口地址 值
本章要点及复习重点
4.4 汇编语言程序的上机调试
1. 掌握汇编语言程序设计上机的基本步骤。 2. 掌握DEBUG 的R、U、T、G、D、E、A、N、L、 Q等命令的功能及使用方法 。
上机作业(一)
寻址方式练习 一.实验目的
1. 熟练掌握8086/8088的各种寻址方式及 应用。 2. 掌握DEBUG调试程序中的一些常用命令 的使用方法,为以后的实验打下基础。
上机作业(一)
MOV AX, [BX] [DI+01H] MOV AX, [BX] [SI]+03H MOV AX, TABLE [BX] [SI] MOV AX, ES:[BX] [DI] MOV AX, [BP] [DI+02H] MOV AX, TABLE [BP] [DI] MOV AX, ES:[BP] [SI] MOV AX, [BP] [SI+05H] MOV AX, 03H [BP] [DI] MOV AX, [BP] [SI] MOV AX, [BP+02H] [DI+03H] MOV AX, TABLE [BP+02H] [DI+03H] MOV AH, 4CH INT 21H CODE ENDS END START
功能
显示所有寄存器中的内容. 显示修改寄存器的内容 从指定地址开始反汇编 对指定的地址范围进行反汇编 从指定地址开始显示内存单元内容 显示地址范围内的内存单元内容 把给定的数据送到指定地址开始连 续的内存单元中
R U D E
格式: E 地址 [数据]
DEBUG常用命令汇总表(二)
命令名 格式
格式: 格式: 格式: 格式: 格式: T[=地址][x] N[磁盘][路径]文件名 G[=地址][断点] W[地址] L[地址]
三.具体操作步骤举例
退出EDIT环境
三.具体操作步骤举例
第三步
对源程序进行汇编 源程序名
源程序17行语法错
三.具体操作步骤举例
重新进入EDIT,打开 源程序,进行改错
三.具体操作步骤举例
类型不明确,两存储器单 元之间不能直接传送数据
三.具体操作步骤举例
2.存盘 3.退出
1.改正
三.具体操作步骤举例
DEBUG装入用户可执行文件的另一种方法 用N命令命名 用L命令装入程序
三.具体操作步骤举例
用E命令修改内存
三.具体操作步骤举例
三.具体操作步骤举例
三.具体操作步骤举例
用D命令显示存 储器单元内容
DEBUG常用命令汇总表(一)
命令名 格式
格式1: 格式2: 格式1: 格式2: 格式1: 格式2: R R 寄存器名 U [地址] U 地址范围 D [地址] D 地址范围
§4.5 汇编语言程序设计 上机步骤与调试方法
一.上机环境
用户程序:ABC.exe等 操作系统:DOS系统 编辑器: EDIT.exe 编程序: MASM.exe 连接程序:LINK.exe 调试程序:DEBUG.exe
应用软件 系统软件 硬件
CPU、存储器(ROM、RAM)、I/O接口、输入、输出设备
重新汇编
三.具体操作步骤举例
第四步
对目标文件 进行连接
三.具体操作步骤举例
目标文件名
三.具体操作步骤举例
第五步
用DEBUG对可执 行文件进行调试
三.具体操作步骤举例
DEBUG提示符
三.具体操作步骤举例
用R命令显示各 寄存器内容
三.具体操作步骤举例
用U命令反汇编
三.具体操作步骤举例
用T命令单步执 行一条指令
上机作业(一)
DATA2 SEGMENT DB 0C0H, 0C1H, 0C2H, 0C3H, 0C4H, 0C5H, 0C6H, 0C7H DB 0C8H ,0C9H, 0CAH, 0CBH, 0CCH, 0CDH, 0CEH, 0CFH DATA2 ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA1, ES:DATA2, SS:STACK START:MOV AX, DATA1 MOV DS, AX MOV AX, DATA2 MOV ES, AX MOV BX, 0004H MOV CX, 0005H
上机作业(一)
[2]用MASM.EXE宏汇编程序对以上源程序进行汇编,其 方法为: MASM 文件名.ASM ; 回车 此时,如果源程序中无语法错误,则在磁盘上形成文 件名.OBJ文件。 [3]用LINK.EXE连接程序对文件名.OBJ文件进行连接, 其方法为: LINK 文件名.OBJ ; 回车 此时,如果连接正确,则在磁盘上形成:文件名.EXE 可执行文件。 [4] 对源程序中从MOV AX, CX开始以下所有指令按下 表进行计算。
本章要点及复习重点
3.掌握逻辑运算类指令(AND、OR、XOR、NOT、 TEST)的应用及对标志位的影响。 4.掌握移位指令(SHL、SHR、SAL、SAR)、循环移 位指令(ROL、ROR、RCL、RCR)等指令的应用。
本章要点及复习重点
4.3 汇编语言程序设计
1.掌握汇编语言程序设计步骤。 2.熟练掌握汇编语言源程序的完整结构及相应 的伪指令的意义。 3.掌握分支程序设计时应注意的几个问题,会设 计简单的分支程序。 4.掌握循环程序的基本结构及循环程序的设计, 会用气泡排序法进行二重循环程序设计。
有汇编错误信息 ? N 形成目标程序 ABC.OBJ
Y
连接目标程序 LINK ABC.OBJ 有连接错误信息 ? Y N 形成可执行程序 ABC.EXE 装入可执行程序到内存 ,并执行 D:\>ABC 运行结果正确 ? Y 下一程序 N N 用 DEBUG调试程序查错 ? Y 用 DEBUG 调试可执行程序 找到原因 D:\> DEBUG ABC.EXE
本章要点及复习重点
5.掌握子程序设计时的几个问题,包括: 子程序的定义方法 CALL、RET指令的应用(注意段内、段间 子程序调用与返回时现场的保护与恢复 以及堆栈的变化情况) 主程序与子程序之间参数的传递方法 用户信息的保护与恢复方法 子程序说明文件包含的内容
本章要点及复习重点
6.熟练掌握DOS的01H、02H、09H、0AH功能的调 用方法。 7.掌握字符串处理指令(MOVS、CMPS、SCAS 、 STOS、LODS)的共同约定以及应用 8.掌握宏指令的定义及调用方法
SRC的地址
AX推算值
AX实际值
上机作业(一)
指令
MOV AX, TABLE [BP] MOV AX, 08H [BP] MOV AX, [BP+06H] MOV AX, DS:[BP+03H] MOV AX, [BP]+05H MOV AX, ES: [SI+03H] MOV AX, [DI+06H] MOV AX, [DI]+05H MOV AX, TABLE [SI]
二.实验仪器
586微机 1台
上机作业(一)
三.实验内容
1. 关于数据的寻址方式练习
8086/8088 提供多种方式实现操作数寻址,大体可 分为7种: a. 立即寻址 a-b要寻找的操作数与存储器无关。 b. 寄存器寻址 c. 直接寻址 c-g 要寻找的操作数在存 d. 寄存器间接寻址 贮器某单元,存贮器单元 e. ቤተ መጻሕፍቲ ባይዱ存器相对寻址 的地址由寻址方式确定。 f. 基址变址寻址 g. 基址变址且相对寻址
编辑源程序 EDIT ABC.ASM 汇编源程序 MASM ABC.ASM
二.上机步骤
① D:>EDIT ABC.ASM ② D:>MASM ABC.ASM; 有语法错,回EDIT下改源程序 ③ D:>LINK ABC.OBJ; 有错,回在EDIT下改源程序 ④ D:>ABC 运行结果错,回EDIT下改源程序 或在DEBUG下调试,找原因。 ⑤ D:>DEBUG ABC.exe
上机作业(一)
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV BP, 0003H SI, 0002H DI, 0001H AX, CX ;以下指令按后表要求完成 AX, 500H AX, TABLE AX, ES:[BX] AX, [BX+05H] AX, SS:[BX]+03H AX, TABLE [BX] AX, 07H [BX] AX, [BP]
三.具体操作步骤举例
第一步
点击“运行”
三.具体操作步骤举例
COMMAND
三.具体操作步骤举例
DOS提示符
三.具体操作步骤举例
第二步
进入EDIT编辑环境
三.具体操作步骤举例
三.具体操作步骤举例
编辑源程序
三.具体操作步骤举例
编辑完后,准备存盘
三.具体操作步骤举例
另存为……
三.具体操作步骤举例
上机作业(一)
指令
MOV AX, CX MOV AX, 500H MOV AX, TABLE MOV AX, ES:[BX] MOV AX, [BX+05H] MOV AX, SS:[BX]+03H MOV AX, TABLE [BX] MOV AX, 07H [BX] MOV AX, [BP]
SRC寻址方式
用Q命令退出 DEBUG
三.具体操作步骤举例
用G命令设置断点,连续(全速)运行程序的调式方法
三.具体操作步骤举例
用G命令连续 执行到断点处
三.具体操作步骤举例
用D命令显示存 储器单元内容
三.具体操作步骤举例
用G命令连续 执行到断点处
三.具体操作步骤举例
用D命令显示存 储器单元内容
三.具体操作步骤举例
上机作业(一)
MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV AX, TABLE [BP] AX, 08H [BP] AX, [BP+06H] AX, DS:[BP+03H] AX, [BP]+05H AX, ES: [SI+03H] AX, [DI+06H] AX, [DI]+05H AX, TABLE [SI] AX, [SI] AX, TABLE [DI] AX, [SI]+05H
三.具体操作步骤举例
三.具体操作步骤举例
用D命令显示存 储器单元内容
三.具体操作步骤举例
三.具体操作步骤举例
三.具体操作步骤举例
三.具体操作步骤举例
三.具体操作步骤举例
三.具体操作步骤举例
三.具体操作步骤举例
三.具体操作步骤举例
三.具体操作步骤举例
用P命令单步执 行一个过程
三.具体操作步骤举例
本章要点及复习重点
4.2 8086指令系统
1.数据传送类指令 掌握MOV、XCHG、LEA、XLAT、PUSH、POP等指 令的应用。 2.算术运算类指令 掌握加法(ADD、ADC、INC)、减法(SUB、SBB、 DEC、NEG、CMP)、乘法、除法、BCD数调整 (DAA)等指令的应用及对标志位的影响。
上机作业(一)
掌握8086/8088的这些寻址方式,是学习汇 编语言编程的关键。因此,我们编写了下面的程 序段,以数据传送指令为例,列举了部份寻址方 式,请同学们按下列要求认真完成。 [1] 在全屏幕编辑软件下,建立以下汇编语 言源程序。
上机作业(一)
STACK SEGMENT STACK DB 0B0H, 0B1H, 0B2H, 0B3H, 0B4H, 0B5H, 0B6H, 0B7H, DB 0B8H, 0B9H DB 0BAH, 0BBH, 0BCH, 0BDH, 0BEH, 0BFH DB 10H DUP(00) STACK ENDS DATA1 SEGMENT DB 0A0H, 0A1H, 0A2H, 0A3H TABLE DW 0A5A4H DB 0A6H, 0A7H, 0A8H, 0A9H, 0AAH, 0ABH DB 0ACH, 0ADH, 0AEH, 0AFH DATA1 ENDS