实验四五汇编语言程序设计Word格式.docx

上传人:b****1 文档编号:3867843 上传时间:2023-05-02 格式:DOCX 页数:11 大小:78.97KB
下载 相关 举报
实验四五汇编语言程序设计Word格式.docx_第1页
第1页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第2页
第2页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第3页
第3页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第4页
第4页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第5页
第5页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第6页
第6页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第7页
第7页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第8页
第8页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第9页
第9页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第10页
第10页 / 共11页
实验四五汇编语言程序设计Word格式.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验四五汇编语言程序设计Word格式.docx

《实验四五汇编语言程序设计Word格式.docx》由会员分享,可在线阅读,更多相关《实验四五汇编语言程序设计Word格式.docx(11页珍藏版)》请在冰点文库上搜索。

实验四五汇编语言程序设计Word格式.docx

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

LEADX,STRING

MOVAH,9

INT21H

MOVAH,4CH

CODESENDS

ENDSTART

1)在DEBUG中,如何观察数据段中的数据存储情况?

数据存储的段地址和偏移地址如何察看?

答:

输入-D,执行结果如下:

每行十个数据,最前面显示的地址是每行第一个数据的地址信息,且冒号(“:

”)之前的四位是段地址,之后四位是偏移地址,每行第一个数据每往右边一个数据,段地址不变,偏移地址加一。

2)在DEBUG中,如何查看机器码所对应的源程序?

代码的段地址和偏移地址如何确定?

输入-U,执行结果如下图:

代码的短地址和偏移地址的确定同上题1)。

3)运行上述程序的命令行是:

G=0000,程序的运行结果是“HelloWorld!

”。

4)代码段中的LEADX,STRING语句,翻译成机器指令后再反汇编,得到什么语句?

为什么?

由上题2)中的运行结果可知会得到以下语句:

LEADX,[0000]

因为STRING的偏移地址是0000H

5)如果代码段中有一条MOVBL,STRING语句,翻译成机器指令后再反汇编,得到什么语句?

同理可知会得到一下语句:

MOVBL,[0000]

2.从实验1的2-4三个参考程序中,任选一个改编成完整源程序,建立其可执行文

件并运行。

(注意:

需要定义标号,作为控制转移类指令中的操作数;

直接寻址的存储器操作数,应通过变量表示)

选择程序2,则完整源程序如下:

.

STACKSEGMENTSTACK

DB100DUP(?

TOPLABELWORD

STACKENDS

DATASEGMENT

DATAENDS

CODESEGMENT

CODE,DS:

DATA,SS:

STACK

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVSP,OFFSETTOP

MOVBL,0

PUSHBX

DATA1:

MOVDL,20H

MOVAH,02H

POPBX

MOVAL,BL

INCAL

CMPAL,1BH

JNZDATA2

MOVAL,01H

DATA2:

MOVBL,AL

PUSHBX

ADDAL,40H

INT21H

MOVCX,0FFFFH

DATA3:

DECCX

JNZDATA3

JMPDATA1

CODEENDS

ENDSTART

运行后,连续显示A,B,C,D·

·

Z大写英文字符

 

实验五:

1.编制一个将10个带符号的正、负数分开的源程序,生成可执行文件后,在debug下调试运行。

(1)设10个数为01H,02H,03H,04H,06H,0FFH,80H,81H,06H,07H。

(2)将这些数据中的正、负数分开,正数放在变量VAR2对应的数据区中,负数放在VAR3对应的数据区中。

DATAS 

SEGMENT 

VAR1 

DB 

01H,02H,03H,04H,06H,0FFH,80H,81H,06H,07H,6 

DUP(00) 

 

VAR2 

DB 

16 

VAR3DB 

16 

ENDS 

STACKS 

DB 

256 

DUP(?

) 

CODES 

ASSUME 

CS:

DATAS,SS:

MOV 

AX,DATAS 

MOV 

DS,AX 

LEA 

SI,VAR1 

LEA 

DI,VAR2 

BX,VAR3 

CX,10 

L1:

AL,[SI] 

TEST 

AL,80H 

JZ 

L2 

[DI],AL 

INC 

DI 

INC 

SI 

LOOP 

L1 

INT 

21H 

L2:

[BX],AL 

INC 

BX 

LOOP 

AH,4CH 

INT 

END 

START 

2.编制源程序,并生成EXE可执行文件,然后调试运行

(1)功能要求:

找出无序的有符号数中的最小值和最大值(最少10个数,数据内容随意设定,数据类型:

字节)。

(2)数据区的第一个数存放数据长度,数据紧随其后(数据类型:

(3)在屏幕上输出最大值和最小值:

格式:

MAX=“最大值”,MIN=“最小值”(调用DOS功能实现)。

DATASEGEMENT

ARYDB30,16,8,-1,13,49,7,11,4,20

COUNTDB10

MAXDB?

MINDB?

ADDRESSDW4DUP(?

DATAENDS

STACKSEGMENTPARASTACK’STACK’

DB256DUP(?

STACKENDS

ASSUMECS:

DATA

MOVAX,DATA

MOVDS,AX

MOVADDRESS,OFFSETARY

MOVADDRESS+2,OFFSETCOUNT

MOVADDRESS+4,OFFSETMIN

LEABX,ADDRESS

CALLSEARCH

MOVAL,MAX

CALLOUTDATA

CALLCRLF

MOVAL,MIN

MOVAH,4CH

SEARCHPROC

PUSHCX

PUSHDX

PUSHBP

PUSHSI

PUSHDI

MOVBP,[BX+2]

MOVCX,DS:

[BP]

DECCX

MOVSI,[BX+4]

MOVDI,[BX+6]

MOVBP,[BX]

MOVDL,DS;

MOV[SI],DL

MOV[DI],DL

INCBP

LOP:

MOVDL,DS:

CMDDL,[SI]

JENEXT

JLMINC

JMPNEXT

MINC:

CMPDL,[DI]

JGENEXT

NEXT:

LOOPLOP

POPDI

POPSI

POPBP

POPDX

POPCX

RET

SEARCHENDP

OUTDATAPROCNEAR

PUSHAX

MOVBL,AL

MOVCL,4

MOVAL,CL

ORAL,30H

CMPAL,3AH

JBOUTH

ADDAL,07H

OUTH:

MOVDL,AL

MOVAH,02H

INT21H

MOVDL,BL

ANDDL,OFH

ORDL,30H

CMPDL,3AH

JBOUTL

ADDDL,07H

OUTL:

MOVDL,’H’

MOVAH,2

POPDX

POPCX

POPBX

POPAX

RET

OUTDATAENDP

CRLFPROC

PUSHAX

PUSHDX

MOVDL,0AH

MOVDL,0DH

RET

CRLFENDP

ENDSTART

三、结合相关实验结果,列举实验中遇到的难点及解决办法。

1.在实验的刚开始,我并不知道如何正确使用宏汇编MASM,花了很长的一段时间查看微机课本上的附录部分,逐渐了解并成功地进行了汇编、连接、调试等过程。

四、根据自身经验,简单阐述实验与课堂教学以及课程项目之间的关联性。

最后一次上机实验让我觉得完成一个完整汇编程序的设计,并进行调试以达到最后目的真的是一件不容易的事情,尤其是实验五中的程序,是在参考了网上的程序才得以完成。

课本知识与实验实践是相辅相成互相关联的两部分,对于我们学习和掌握汇编知识来说都是特别重要的,实验是对课本知识掌握程度的检验,也是对课本知识的一种补充。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2