微机原理实验实验指导书2013

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微型计算机原理与应用

实验指导书

上海大学通信学院

2013 年 4 月

微机原理实验一

一、实验目的:

掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的功能。二、实验要求:

在PC机上完成下列程序的调试运行,并写出运行结果。

三、实验内容

1.DEBUG的基本操作:

(1)从WINDOWS进入DOS之后,输入命令启动DEBUG:

C:>DEBUG 回车

(2)输入R命令,查看和记录CPU各个寄存器的内容:

-R回车

看到什么?

(3)输入A命令,汇编下面的字符“WINDOWS”显示程序(DEBUG调试环境中,默认为十六进制,因此源程序中十六进制数后面不写H):

-A100 ;从偏移地址是0100H处开始写指令

MOV AH,2

MOV DL, 57 ;57H 是“W”的ASCII码

INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功

;能。这3句合起来的功能是:显示DL中的字符MOV DL, 49

INT 21

MOV DL, 4E

INT 21

MOV DL, 44

INT 21

MOV DL, 4F

INT 21

MOV DL, 57

INT 21

MOV DL, 53

INT 21

INT 3 ;功能是产生一个断点,不要省略(4)输入U命令反汇编上面的程序:

-U 100

问:这里100代表什么?

(5)输入G命令连续运行上面的程序,记录运行结果:

-G=100

(6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,

45,4C,43,4F,4D,45:

-E 103 回车(以下同)

-E 107

-E 10B

-E 10F

-E 113

-E 117

-E 11B

(7)输入D命令查看程序机器码的存放情况:

-D 100 11E ;看从100开始到11E的机器码

(8)输入G命令再连续运行程序,并记录运行结果:

-G=100

(9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各

命令的运行结果:

-T=100 回车

-G=100 106 回车

-G=100 10A 回车

-G=100 10E 回车

-G=100 11E 回车

注意:

若不小心打错指令,可以这样修改:

例如:CS:0100 B300 MOV BL,0

0102 53 PUSH BX

0103 B220 LP1: MOV DL,20

要修改“PUSH BX”,因为这条指令的偏移地址是0102H,所以按以下操作:-A 0102 回车,然后把正确的指令打入,“-A ”是汇编指令。

如果要查看0100H以后的指令及相应的机器代码,可以

-U 0100 回车,能够看到CS:0100开始的指令及相应的机器代码。“-U ”是反汇编

若发现有误用,用“-A XXXX 回车”,重打这条指令即可

2.一字节十六进制数转换为ASCII码(只考虑大写字母)

用E命令在DS:1000单元中存放十六进制数5A,用A命令从CS:0100单元开始存放下面程序的机器码,并调试运行(DEBUG调试环境中,源程序中十六进制数后面不写H):

CS:0100 8D360010 LEA SI,[1000]

0104 8D3E2010 LEA DI,[1020]

0108 8A04 MOV AL,[SI]

010A 240F MOV BL,AL

010C 240F AND AL,0F

010E E80E00 CALL 011F

0111 80E30 AND BL,F0

0114 B90400 MOV CX,4

0117 D2EB SHR BL,CL

0119 88D8 MOV AL,BL

011B E80100 CALL 011F

011E F4 RET

011F 3C09 CMP AL,09

0121 7602 JBE 0125

0123 0407 ADD AL,07

0125 0430 ADD AL,30

0127 8805 MOV [DI],AL

0129 47 INC DI

012A C3 RET

运行结果:

1)写出执行上述程序的命令行________________________

2)程序执行后,[1020]=__________,[1021]=__________。

3)思考:NOP 是空操作指令,若在ADD AL,07后面,加一条NOP,结果会如何?

3、搜索字符串结束标志,统计搜索的字符个数

用E命令在DS:1000开始的单元中存放若干个ASCII字符,例如:30,31,

32……39,0D。(0D作为字符串结束标志,实验中请输入与示例不同的字符组合)。

用A命令从CS:0200单元开始存放程序的机器码,并调试运行。参考程序如下:LEA DI, [1000]

MOV DL, 0

MOV AL, 0D

AGAIN: CMP AL, [DI]

JE DONE (debug环境下,写标号DONE语句的偏移地址)

INC DL

INC DI

JMP AGAIN (AGAIN语句的偏移地址)

DONE: LEA BX, [1020]

MOV [BX],DL

RET

运行结果:

1)在DS:1000开始的单元中存放的字符串是______________________

2)程序执行后,搜索的字符个数存放在___________单元,该单元的值是___________。

3)程序执行后,(AL)=__________ ,(BX)=__________,(DL)=__________。

4.编制一个能在CRT上连续显示A,B,C,D······Z大写英文字符的源程序,并在源程序下汇编调试运行。

用A命令从CS:0300单元开始存放程序的机器码,并调试运行:参考源程序:

CS:0300 B300 MOV BL,0

0302 53 PUSH BX

0303 B220 MOV DL,20

0305 B402 MOV AH,02

0307 CD21 INT 21

0309 5B POP BX

030A 88D8 MOV AL,BL

030C FEC0 INC AL

030E 3C1B CMP AL,1B

0310 7502 JNZ 0114

0312 B001 MOV AL,01

相关文档
最新文档