汇编语言顺序结构实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验
实验目的:
1. 掌握顺序结构程序的基本设计方法;
2. 掌握数据传送指令和算术运算指令的用法;
3. 掌握逻辑操作指令和移位操作指令的用法;
4. 掌握状态标志位操作指令的用法;
5. 掌握简单的I/O 功能调用。
实验要求
1. 熟练掌握DEBUGS的U,D,E,G命令的使用方法;
2. 学会利用系统功能调用,来实现键盘输入字符、显示字符的方法;
3. 了解大、小写字母及数字在计算机中的表示方法及转换方法。
实验容
题目
SUM单元编写十六进制的乘法程序。要求从键盘上输入两个一位十六进制数据,乘积存入
以下是我的汇编程序代码:
DSEG SEGMENT
SUM DW ?
HTAB DB '0123456789???????ABCDEF'
HTAA DB '0123456789ABCDEF'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV AH,01H
INT 21H
MOV DL,'*'
MOV AH,02H
INT 21H
SUB AL,30H LEA BX,HTAB XLAT
MOV DL,AL
MOV AH,01H INT 21H SUB AL,30H XLAT MOV BL,DL MUL BL
MOV SUM,AX
MOV BL,AL
MOV CL,AL
MOV DL,'=' MOV AH,02H INT 21H SHR BL,4 MOV AL,BL LEA
BX,HTAA XLAT MOV DL,BL MOV AH,02H INT 21H AND CL,0FH
MOV AL,CL XLAT MOV DL,AL MOV AH,02H INT 21H MOV DL,'H'
MOV AH,02H INT 21H
MOV AH,4CH
INT 21H CSEG ENDS
END START
结果
该程序不仅将结果存入了sum且显示在了屏幕上,经测试无溢出。
调试,改错
在执行INT 21H 指令后,AL 寄存器中的容被改变,于是我将 AL 用DL 保存起来后重新 执行,发现仍然会显示乱码,进一步进行单步指令执行后,我发现 ,寄存器AL ,在转存过程
中被我记成了 BL 。经过修改终于完成。
严
AH=fi23i BX=fl919 CK=1E04
DH=flO3D
ftP-8000 BP=0000
SI-0000 DJ-flP00
DS=CB3C
ES=0B2C
SS=0B3C
CS=0B3P
IP=B83F
HU UP IT
PL HZ HA PO CV
1
M 怕
MC U
DL,
-P
IX-0231
CX=LE04 DX=-fl019 $P 吨盹
BP^aaea SI ^-8003 DI ^-0000 PS-0B3C E8-0B2G SS "0B3G GS-6B3F
IP-0041
NU UP II PL NZ Nfl PO CY
0B3F ;O041
MO 他
-P
AX=023t =0019
CK=£E04
DX =0019
£P=00O0
BP=9008
51=0000
DI=000Q
DS=«B3C EG=0B2C
SS=MB3C
CS=flB3F
I P=0(i43
MU UP 卫I
PL HZ HA PO C¥
SB3F :0043
CD21 INT 21
1K=0233
BK=00Rfi
DK =00KA
BP=0BHH
SI DI =00fl (5
ES=0B2C SS=0B3C
C£=083F
IF=B00D
NU UP El
FL NZ NA PO NC
-P
I CD21
INT
21
CK =0087 DX -QB2A
BF-0000
BI=0尅00 BI=00阳 &S=0B3C
ES-0B2C SS-0B3C CS=0B3F IP-009F
NU UP El PL NZ NA PO NC
:2C30
SUE f 叽 30
在实验过程中,有几个问题出现了, 首先,一开始在编写代码过程中,
由于我没有给输入容表加逗号,
导致数据溢出而使编
译无法通过,经过修改后终于通过了编译。
但是之后结果一直都显示为同一个数字, 经过单步指令语言执行后, 我得到了以下的结
果:
开始我编写了一个利用转移指令完成的汇编程序,
能够顺利将结果保存到 AX 和sum
B3F :0P100 B3F :0003
B3F=00B5
B3F :0007
B3F :00S9 S3F :W00H B3F :000D B3P-000F B3F :00L1 B3F=0013 B3F :00L5 B3F :0019 B3F :001A B3Fr001C
B3F=001E
B83C0B
HEDR B401 CD21
8AE8 B22A B402 CD21 0fiC5 2C30
8D1E0200 D? 8AD0 B401 CD2i
nou NOU MOU INI MOV MOU MOU I NT noi SUB LEA KLAT HOU HOU INI
B x l L A
S H 06 @"s @A 2 0 C 3[ 严
A F
"b q JF
尸>>
X S H 1H L H 1L L X Dio AL AH,61 21
a.a 2L J !T 5r TT 一4-^;r sr ff Tr Tr —19
002 3 泅 0 9磁D7 B023 SABA 9025 FGE3
0027 M9000 1302 A 怡DE S02C »AES 财2E B23D
0930 B40Z 0032 CD21 0034 Bl 94 mG I>2EB 083A BD1E17B0 0酣 E »?
F 呂白DP
0041 B402 00羽 CD21 盼15 S0E50F 朋4H BAC5 064A DV »fl4B SADQ 004D B402 004F CD21
0aSl B248
胸盟B402 购55 CD21 0057 B401 0059 CD21 09&B 2301 005D 2E 005E 8S3G579X E A u L u u U
U U T U E U A A U U L O U O O O O O N O H O E L O U I D U A U U I
U m u I D --u O N N O L O O N O O N O N N S O BL,DL BL [WebAK BL.AL CH^L DL.3D AH,B2 21
BX.18S1?]
DL.AL
21 CH,0F AL, CH
1H 1L H 1
H I X
AL
92 [BW+DI [9157],SI
G^0
开A =1EH
X=01(JD
BX=601^ CX-6E04 DM =0346 BP=0000 S1 =3000 DI =8090 iS^0B7C ES=0B2C SS-0E3G CS=0B3F IP^B05B NV UF El FL HZ : NA PO KC IB3F :O05B 2391 AND flX,tBX+EI] DS =0019=3130
以及储存器的最终状态 以及存的最终状态,其中 0000为SUM 以3*A=1E 为例,sum 在第一个单元。 c c c c
c c c
IE 腼 37 BS 21 2C B4 D0
0 0
8
c A 0 2 4 0 033D7 CD 02 01 泅 41 BE 2C 8A 21 CD 02 OB 42 D8 30 DA Bl 21
3C 34D 640
8O 4B 8F 0844 01 IE E3 D2 E5 05—恥 0E-BF 45-4€ CD-21 02 -00 A3-00 EB-8A 0F-8A
即 3B Q0 BA D7 色口 C3 C5
8108A A D 7 030E 000P
920208E A
030B D D 18 33 2ft B4 19 0&0D 1D A D
030C 2
3B C ....................................... 01234E6 ?89ftBCDEF .......