北京工业大学微机原理实验报告2Word文档格式.docx

上传人:b****2 文档编号:2945690 上传时间:2023-05-01 格式:DOCX 页数:14 大小:301.51KB
下载 相关 举报
北京工业大学微机原理实验报告2Word文档格式.docx_第1页
第1页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第2页
第2页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第3页
第3页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第4页
第4页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第5页
第5页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第6页
第6页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第7页
第7页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第8页
第8页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第9页
第9页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第10页
第10页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第11页
第11页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第12页
第12页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第13页
第13页 / 共14页
北京工业大学微机原理实验报告2Word文档格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

北京工业大学微机原理实验报告2Word文档格式.docx

《北京工业大学微机原理实验报告2Word文档格式.docx》由会员分享,可在线阅读,更多相关《北京工业大学微机原理实验报告2Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。

北京工业大学微机原理实验报告2Word文档格式.docx

写出程序的功能,画出程序流程图。

(1)程序修改前:

STACKSG:

SEGMENTPARASTACK‘STACK’;

不能有冒号

DB256DUP(?

STACKSGENDS

DATASG:

SEGMENTPARA‘DATA’;

BLOCKDW0,-5,8,256,-128,96,100,3,45,6,512

DW23,56,420,75,0,-1024,-67,39,-2000

COUNTEQU20

MAXDW?

DATASGENDS

CODESG:

SEGMENT;

ASSUMESS:

STACKSG,CS:

CODESG

ASSUMEDS:

DATASG

ORG100H

BEGINMOVDS,DATASG;

BEGIN:

应改为MOVAX,DATASG

MOVDS,AX

LEASI,BLOCK

MOVCX,COUNT

DECCX

MOVAX,[SI]

CHKMAXADDSI,2;

应加冒号CHKMAX:

CMP[SI],AX

JLENEXT

DECCX;

删除

NEXT:

LOOPCHKMAX

MOVMAX,AX

MOVAH,4CH

INT21H

CODESGENDS

ENDBEGIN

(2)程序修改后:

STACKSGSEGMENTPARASTACK‘STACK’

DATASGSEGMENTPARA‘DATA’

CODESGSEGMENT

BEGINMOVAX,DATASG

MOVDS,AX

CHKMAX:

ADDSI,2

CMP[SI],AX

JLENEXT

MOVAX,[SI]

(3)程序注释:

STACKSGSEGMENTPARASTACK'

STACK'

DB256DUP(?

STACKSGENDS;

定义堆栈段

DATASGSEGMENTPARA'

DATA'

数据段定义

DW23,56,420,75,0,-1024,-67,39,-2000;

定义变量BLOCK包含20个字

COUNTEQU20;

COUNT=20

定义字变量MAX并不赋值

CODESGSEGMENT;

代码段定义

CODESG;

说明STACKSG是堆栈段

DATASG;

CODESG是代码段,DATASG是数据段

MOVAX,DATASG

MOVDS,AX;

DS指向DATASG

LEASI,BLOCK;

取BLOCK的有效地址给SI

MOVCX,COUNT;

CX=20

CX=CX-1

MOVAX,[SI];

将DS:

[SI]里的值送到AX

CHKMAX:

ADDSI,2;

SI=SI+2

CMP[SI],AX;

比较DS:

[SI]与AX值的大小

JLENEXT;

如果DS:

[SI]的值小于AX里的值,则跳转到NEXT

[SI]的值送到AX

LOOPCHKMAX;

循环CHKMAX

MOVMAX,AX;

将AX的值送到变量MAX

MOVAH,4CH;

结束

(4)程序的流程图:

Y

N

Y

(5)程序的功能:

找出20个数中的最大值并保存。

四、实验步骤

1、建立汇编语言源程序,对建立的汇编语言源程序进行编译、链接。

2、运行DEBUG调试程序,装入被调试程序,用U命令查看调入的程序,记录代码段基值和数据段基值,用R命令查看并记录下当前寄存器内容。

代码段段基值:

164F数据段段基值:

162C

AX=0000BX=0000CX=0536DX=0000SP=0100BP=0000

SI=0000DI=0000DS=162CES=162CSS=163CCS=164FIP=0100

3、用D命令查看并记录下内存中数据存放格式。

(注:

在教室没有做完,回来用自己电脑做的,所以段基值不一样)

4、用T命令单步运行程序,观察各条指令执行结果,以及对寄存器、标志位、内存单元的影响,若找出程序中的错误,用Q命令退出DEBUG环境,修改汇编语言源程序,重复上述步骤,直至整个程序无误。

5、若将LEASI,BLOCK语句改为LEASI,BLOCK+2*COUNT-2,并将ADDSI,2改为SUBSI,2,重新运行程序,观察运行结果:

1)建立汇编语言源程序,对建立的汇编语言源程序进行编译、链接。

2)运行DEBUG调试程序,装入被调试程序,用U命令查看调入的程序,记录代码段基值和数据段基值,用R命令查看并记录下当前寄存器内容。

3)用D命令查看并记录下内存中数据存放格式

4)用T命令单步运行程序,观察各条指令执行结果,以及对寄存器、标志位、内存单元的影响。

和之前的结果一样。

6、若重新给出一组数据,可用E命令输入新数据后运行程序,观察并记录运行结果。

7、若要求找出数据区中最小数,程序将如何修改,试上机调试。

(将JLENEXT改为JGENEXT)

DATASEGMENTPARA'

BLOCKDW0,-5,8,256,-128,96,100,3,45,6,512

COUNTEQU20

MAXDW?

DATAENDS

STACKSEGMENTPARASTACK'

STACKENDS

CODESEGMENT

STACK,CS:

CODE

DATA

MOVBX,DATA

MOVDS,BX

LEASI,BLOCK

MOVCX,COUNT

MOVAX,[SI]

CHKMAX:

ADDSI,2

CMP[SI],AX

JGENEXT

MOVMAX,AX

MOVAH,4CH

CODEENDS

实验结果如下:

五、实验习题与思考

1.在装入被调试程序后,如何知道分配给该用户程序的数据段在内存中的位置?

答:

在DEBUG环境中用R命令进行检验。

2.数据区以什么形式存放用符号数的?

以补码形式存放有符号数。

3.修改前、后程序在执行时有何区别(提示:

观察数据指针的变化)

修改前SI递增(顺序比较),修改后SI递减(倒叙比较)。

4.程序执行完毕,结果存放在何处?

内存MAX中。

5.总结一下CS,IP,SS,DS,ES被设置的区别?

CS,DS,SS,ES都用ASSUME伪指令来设置,IP通过ORG伪指令来设置。

6.观察伪指令PARA和ORG的作用。

PARA用来说明本段的段的起始地址能被16整除,即DS:

0000下一行是DS:

0010。

ORG用来指定当前位置的偏移地址。

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

当前位置:首页 > 经管营销 > 金融投资

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

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