汇编语言顺序结构实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 .......

相关文档
最新文档