微机原理及接口技术实验指导书
- 格式:doc
- 大小:247.50 KB
- 文档页数:10
. '. 实验一 标志寄存器应用
一、实验目的与要求 1.掌握汇编程序的编译过程; 2.掌握8086的标志寄存器的特点。 二、实验内容 练习识别8086标志寄存器的各种标志位。PC机中状态位的表示如下: 标志位的名称 为1的对应符号 为0的对应符号 OF 溢出标志 OV NV DF 方向标志 DN UP IF 中断允许标志 EI DI SF 符号标志 NG PL ZF 零标志 ZR NZ AF 半进位标志 AC NA PF 奇偶标志 PE PO CF 进位标志 CY NC DEBUG的命令及其功能: 命令 功能 格式 A 对语句进行汇编 A[] C 比较内存内容 C D 显示内存内容 D[]或[] E 修改内存内容 E[…] F 填充内存内容 F G 运行一个程序或程序段 G[=][…] H 十六进制的加减法运算 H I 读/显示输入字节 I
L 装入文件或磁盘扇区 L[[数>]] M 传送内存块 M N 定义文件名和参量 N[…] O 输出命令 O P 单步,并跳过子程序 P[=][] Q 退出DEBUG Q R 显示和修改寄存器内容 R[] S 对字符进行检索 S T 跟踪执行和显示 T[=][] U 对指令进行反汇编 U[]
W 写入文件或磁盘扇区 W[[区数>]] . '. 三、实验设备 微型计算机(80x86系列)。 四、实验参考程序 DATA SEGMENT A DW 123 B DW 456 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX MOV AX , A SUB AX , B MOV SUM , AX MOV AH,4CH INT 21H CODE ENDS END START 五、实验步骤 步骤一、用鼠标单击开始菜单,单击运行。如下图所示: .
'. 步骤二、在运行窗口中键入cmd,回车进入命令提示符。如下图所示:
步骤三、在命令提示符中编辑程序文件。如下图所示: 1.C:\>D: 回车 2.D:\ >CD MASM611 回车 3.D:\MASM611>CD BIN 回车 4.D:\MASM611>BIN> EDIT 文件名.ASM .
'. 编辑程序之后,从FLIE菜单中选择SAVE,之后选择EXIT退出 步骤四、在命令提示行中编译程序。如下图所示: D:\MASM611>BIN>MASM 文件名.ASM 回车
步骤五、在命令提示行中链接程序。如下图所示: D:\MASM611>BIN>LINK 文件名.OBJ 回车 .
'. 回车 回车 回车 直到出现
步骤六、在命令提示行中运行程序。如下图所示: D:\MASM611>BIN>debug 文件名.exe 回车 .
'. 根据DEBUG的命令可以查看寄存器内容以及其它。 DEBUG的命令及其功能: 命令 功能 格式 A 对语句进行汇编 A[] C 比较内存内容 C D 显示内存内容 D[]或[] E 修改内存内容 E[…] F 填充内存内容 F G 运行一个程序或程序段 G[=][…] H 十六进制的加减法运算 H I 读/显示输入字节 I
L 装入文件或磁盘扇区 L[[数>]] M 传送内存块 M N 定义文件名和参量 N[…] O 输出命令 O P 单步,并跳过子程序 P[=][] Q 退出DEBUG Q R 显示和修改寄存器内容 R[] S 对字符进行检索 S T 跟踪执行和显示 T[=][] U 对指令进行反汇编 U[]
W 写入文件或磁盘扇区 W[[区数>]]
六、实验结论 1.程序运行后变量SUM的值是多少? 2.程序运行前后标志寄存器的各标志位有何变化? . '. 3.分析实验结果及所遇到的问题,并说明解决的方法。 答:实验结果: 运行前:
运行后:
标志位分别为NV UP EI NG NZ NA PO CY
SUM值同当前的AX,SUM=FEB3。 问题:无
实验二 指令寻址方式练习 一、实验目的与要求 1.掌握汇编语言调试工具(DEBUG)的基本使用方法; 2.掌握8086的寻址方式。 二、实验内容 练习识别8086相关指令的寻址方式。 DEBUG的命令及其功能: 命令 功能 格式 A 对语句进行汇编 A[] C 比较内存内容 C D 显示内存内容 D[]或[] E 修改内存内容 E[…] F 填充内存内容 F G 运行一个程序或程序段 G[=][…] H 十六进制的加减法运算 H I 读/显示输入字节 I
L 装入文件或磁盘扇区 L[[数>]] . '. M 传送内存块 M N 定义文件名和参量 N[…] O 输出命令 O P 单步,并跳过子程序 P[=][] Q 退出DEBUG Q R 显示和修改寄存器内容 R[] S 对字符进行检索 S T 跟踪执行和显示 T[=][] U 对指令进行反汇编 U[]
W 写入文件或磁盘扇区 W[[区数>]] 其中<…>表示输入的内容;[…]表示为可选项。 三、实验设备 微型计算机(80x86系列)。 四、实验参考程序 DSEG SEGMENT ARRAY DB 11,56,78,8,76,90,96,33,21,06 COUNT DW $ - ARRAY RELUST DB ? DSEG ENDS SSEG SEGMENT PARA STACK 'STACK' SDAT DB 50 DUP (?) TOP EQU LENGTH SDAT SSEG ENDS CSEG SEGMENT ASSUME CS:CSEG , DS:DSEG , SS:SSEG START: MOV AX , DSEG MOV DS , AX ;寄存器寻址 MOV AX , SSEG MOV SS , AX MOV AX ,TOP MOV SP , AX MOV BX , OFFSET ARRAY MOV CX , COUNT ;直接寻址 DEC CX MOV AL , [BX] ;寄存器间接寻址 AGAIN: INC BX CMP AL , [BX] JAE NEXT MOV AL , [BX] NEXT: DEC CX JNZ AGAIN MOV RELUST, AL MOV AH, 4CH ;立即寻址 . '. INT 21H CSEG ENDS END START 五、实验步骤 1.D:\MASM>MASM SY2.ASM 2.D:\MASM>LINK SY2.OBJ 3.D:\MASM>SY2.EXE 4.D:\MASM>DEBUG SY2.EXE 六、实验结论 1.指出参考程序中带下划线的指令中源操作数的寻址方式? 2.程序运行后AL中的值是多少? 3.分析实验结果及所遇到的问题,并说明解决的方法。 .
'. 答:运行结果:
AL=60H 需要注意的问题: MASM为16位运行方式,在64位机上需要模拟器。 MASM不支持非8.3文件命名方式。建议使用短目录及短文件名。 寻址方式:MOV AL , [BX]是按字节寻址而不是按字寻址。 MOV AX , SSEG MOV SS , AX MOV AX ,TOP MOV SP , AX
此四句无必要,使用ASSUME伪指令后,SS段运行时将自动装入,SP将自动置数。只需对DS或ES手动装入即可。另外,此汇编程序中没有堆栈操作指令,可以不适用STACK段。