实验二 汇编语言顺序程序设计实验
【实验目的】
1.掌握汇编语言顺序程序设计方法。
2.熟悉常用汇编指令的用法。
3.学会用debug输入、运行小程序,并检查运行情况的方法。
4.学会在PC机上建立、汇编、连接、调试和运行80X86汇编语言程序的过程。
【实验内容】
列出调试程序2的源程序清单并加以注释,说明该程序的功能。
程序2及注释:
DATA SEGMENT
X DB 20H
Y DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, X ;取被操作数,X=20H
XOR AH, AH ;使操作数自身清零
SHL AX, 1 ;将AX移高1位
MOV BX, AX ;BX=AX=40H
MOV CL, 2 ;放置准备移动的位数
SHL AX, CL ;取操作数的高 2 位 ,AX=160H
ADD AX, BX ;AX+BX
MOV Y, AX ;AX→Y,Y=200H
MOV AH, 4CH
INT 21H
CODE ENDS
END START
该程序实现了:计算表达式y=10x。
2. 说出调试程序3的出错处,列出调试程序3经修改运行正确后的源程序清单。
调试前:
图1 运行程序3,错误和警告
调试后的程序3:
DATA SEGMENT
ORG 1000H
BIN DW ? ;存放转换后的二进制数
HEX DB '6B' ;待转换的十六进制数6BH
ORG 1030H
DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H;0-9对应的二进制数转换表
ORG 1040H
DB 0AH,0BH,0CH,0DH,0EH,0FH ;A-F对应的二进制数转换表
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV AL, HEX ;十六进制高位36H→AL
MOV BX, OFFSET BIN ;BIN的偏移地址1000H→BX
SUB AH, AH ;AH清0
ADD BX, AX ;1036H→BX形成转换表地址
MOV DL, [BX] ;DL=(1036H)=06H
SHL DL, 4 ;将DL左移至高4位,DL=60H
MOV AL, HEX+1 ;十六进制低位42H→AL
MOV BX, OFFSET BIN ;BIN的偏移地址1000H→BX
XOR AH, AH ;AH清0
ADD BX, AX ;1042H→BX形成转换表地址
MOV AX, BX ;AL=(1042H)=0BH
OR AX, DX ;AL=0BH∨60H=6BH
MOV BIN, AX ;6BH→BIN单元
MOV AH, 4CH