实验七八九Word格式.docx

上传人:b****5 文档编号:16811388 上传时间:2022-11-26 格式:DOCX 页数:11 大小:331.84KB
下载 相关 举报
实验七八九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

《实验七八九Word格式.docx》由会员分享,可在线阅读,更多相关《实验七八九Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

实验七八九Word格式.docx

BRTABLEDWOFFSETBRA,OFFSETBRB,OFFSETBRC

DWOFFSETBRD,OFFSETBRE,OFFSETBRF

MSGADB'

ILIKEMYIBM-PC!

$'

MSGBDB'

HOWAREYOU!

MSGCDB'

PROGRAMDESIGN$'

MSGDDB'

THISISASAMPLE$'

MSGEDB'

WELLCOMEUSEMYCOPUTER!

MSGFDB'

THEASSEMBLERLANGUAGEOF8086$'

ERRMSDB'

ERROR!

!

INVALIDPARAMETER!

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVES,AX

MOVSI,80H

LEADI,PARM

MOVCX,16

CLD

REPMOVSB

MOVDS,AX

CMPPARM,2

JCERR

MOVAL,PARM+2

SUBAL,30H

CMPAL,6

JNCERR

LEABX,BRTABLE

CBW

ADDAX,AX

ADDBX,AX

JMP[BX]

ERR:

DISPERRMS

BRA:

DISPMSGA

BRB:

DISPMSGB

BRC:

DISPMSGC

BRD:

DISPMSGD

BRE:

DISPMSGE

BRF:

DISPMSGF

CODEENDS

ENDSTART

实验步骤

1、输入并汇编此程序。

要求生成一个.LST文件。

用TYPE命令检查.LST文件,观察宏替换命令产生的指令集。

2、将OBJ文件连接成EXE文件(假设为AA.EXE)。

3、用命令DEBUGAA.EXEXXX(XXX为任意字符串)将AA.EXE带参数调入DEBUG用D命令观察DS:

0080处的命令行,记录80H处的内容和字符个数的关系。

4、退出DEBUG。

直接带参数运行此程序:

AAn(n=0--5)

依次观察并记录n从0到5时的运行结果。

实验八多重循环程序

1、掌握多重循环程序和排序程序设计方法。

2、掌握带符号数的比较转移指令:

JL,JLE,JG,JGE

3、伪指令EQU及操作符'

的使用。

ARRAYDW1234H,5673H,7FFFH,8000H,0DFFH

DW0AB5H,0369H,005FH,5634H,9069H

COUNTEQU$-ARRAY

MOVCX,COUNT

SHRCX,1

DECCX

MOVBL,-1

AGAIN:

MOVDX,CX

ANDBL,BL

JEEXIT

XORBL,BL

XORSI,SI

AGAIN1:

MOVAX,ARRAY[SI]

CMPAX,ARRAY[SI+2]

JLENCHG

XCHGARRAY[SI+2],AX

MOVARRAY[SI],AX

NCHG:

INCSI

INCSI

DECDX

JNZAGAIN1

LOOPAGAIN

EXIT:

MOVAH,4CH

INT21H

1、输入,汇编并连接此程序。

2、在DEBUG下运行此程序,记录运行结果。

3、将转移指令JLE改为JBE,JGE和JAE,分别运行并记录排序结果。

JBE:

JGE:

JAE:

 

实验九子程序

1、掌握利用堆栈传递参数的子程序调用方法。

2、掌握子程序递归调用方法。

3、过程调用伪指令:

PROC,ENDP,NEAR和FAR。

4、8086指令:

CALL,RET,RETn。

5、利用RET指令退出EXE文件的方法。

实验内容及步骤

利用堆栈传递参数的子程序调用(求累加和)

程序内容:

ARY1DB1,2,3,4,5,6,7,8,9,10

COUNT1EQU$-ARY1

SUM1DW?

ARY2DB10,11,12,13,14,15,16,17,18

COUNT2EQU$-ARY2

SUM2DW?

MAINSEGMENT

MAIN,DS:

STARTPROCFAR

PUSHDS

XORAX,AX

PUSHAX

MOVAX,DATA

MOVAX,COUNT1

LEAAX,ARY1

CALLFARPTRSUM

MOVAX,COUNT2

LEAAX,ARY2

RET

STARTENDP

MAINENDS

PROCESEGMENT

PROCE

SUMPROCFAR

MOVBP,SP

MOVCX,[BP+6]

MOVBX,[BP+4]

ADN:

ADDAL,[BX]

ADCAH,0

INCBX

LOOPADN

MOV[BX],AX

RET4

SUMENDP

PROCEENDS

操作步骤:

1、输入,汇编并将此程序连接成EXE文件。

2、用DEBUG的断点命令和T命令运行此程序,观察并记录每次过程调用及进出栈指令前后(带'

;

'

的语句)的SP和堆栈内容。

3、记录最后结果:

SUM1,SUM2的段及偏移地址和它们的内容。

分析和体会

三次微处理器实验,让我获益颇多。

现在回想起来,每次程序调试成功的喜悦似乎还未淡去。

首先,此次实验最基本的收获就是通过编写一些简单的汇编了解微处理器的运作方式和内部变化情况。

实践与理论的结合,让我在学习《微处理器》时能够融会贯通,对书上的程序有了更深的理解。

知识就是力量,今天我们努力获取知识,明天我们必将使用我们掌握的知识改变世界。

还有就是看程序时要仔细一些,实验八中的ASSUME中的DS后应为DATA,之前的错误影响了程序的编译。

还要牢记运行和查看程序结果的方法。

感谢老师的辛勤指导,路漫漫其修远兮,在求知的道路上,我们还将披荆斩棘,一路向前。

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

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1