微机原理实验报告之算术运算编程.docx

上传人:b****2 文档编号:18624931 上传时间:2023-08-20 格式:DOCX 页数:10 大小:264.04KB
下载 相关 举报
微机原理实验报告之算术运算编程.docx_第1页
第1页 / 共10页
微机原理实验报告之算术运算编程.docx_第2页
第2页 / 共10页
微机原理实验报告之算术运算编程.docx_第3页
第3页 / 共10页
微机原理实验报告之算术运算编程.docx_第4页
第4页 / 共10页
微机原理实验报告之算术运算编程.docx_第5页
第5页 / 共10页
微机原理实验报告之算术运算编程.docx_第6页
第6页 / 共10页
微机原理实验报告之算术运算编程.docx_第7页
第7页 / 共10页
微机原理实验报告之算术运算编程.docx_第8页
第8页 / 共10页
微机原理实验报告之算术运算编程.docx_第9页
第9页 / 共10页
微机原理实验报告之算术运算编程.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理实验报告之算术运算编程.docx

《微机原理实验报告之算术运算编程.docx》由会员分享,可在线阅读,更多相关《微机原理实验报告之算术运算编程.docx(10页珍藏版)》请在冰点文库上搜索。

微机原理实验报告之算术运算编程.docx

微机原理实验报告之算术运算编程

成绩

评阅人

《微型计算机原理与接口技术》

实验报告

(一)

 

班级:

姓名:

学号:

指导老师:

实验时间:

实验地点:

实验一

一、实验名称

算术运算编程实验

二、实验目的

通过实验掌握下列知识:

1.8088系统中数据在内存中的存放方式和内存操作数的几种寻址方式。

2.求累加和程序和多字节加减法程序。

工具/准备工作

三、实验内容

1.内存操作数及各种寻址方式使用

2.求累加和程序

3.多字节加法程序

4.自编程序

四、 实验步骤

1.内存操作数及各种寻址方式使用

程序内容:

CODESEGMENT

ASSUMEDS:

CODE,CS:

CODE

START:

MOVAX,CODE

MOVDS,AX

MOVAX,1234

MOVBX,1000

MOV[BX],AX

MOVBX,1002

MOVBYTEPTR[BX],20

MOVDL,39

INCBX

MOV[BX],DL

DECDL

MOVSI,3

MOV[BX+SI],DL

MOV[BX+SI+1],DL

MOVWORDPTR[BX+SI+2],2846

CODEENDS

ENDSTART

 

步骤:

1)用A命令键入上述程序,并用T命令逐条运行。

2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。

注意D命令显示结果中右边的ASCII字符及双字节数存放法。

思考:

有关指令中BYTEPTR及WORDPTR伪操作不加行不行?

试一试。

不行,当DEBUG不能确定某些操作数涉及的是字类型存储单元还是字节类型存储单元是,再这种情况下,必须用前缀“WORDPTR”或“BYTEPTR”来加以说明

 

2.求累加和程序

程序内容:

DATASEGMENT

DATAENDS

STACKSEGMENT'stack'

DB200DUP(0)

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE

START:

MOVBX,1000

MOVCX,10

SUBAX,AX

LOP:

ADDAL,[BX]

ADCAH,0

INCBX

LOOPLOP

J:

INT3

CODEENDS

ENDSTART

步骤:

1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。

2)用E命令在内存地址1000H处键入16个数字

3)用命令G=100J(J用实际地址代替),使程序运行并停在断点J上,检查

AX,BX的值是否符合你的预计值。

4)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,

若不一样,检查程序是否有错。

5)重复GJ与T,再检查AX是否正确。

6)用G命令使程序运行到结束,检查AX值是否正确。

 

3.多字节加法程序

程序内容:

:

MDATASEGMENT

DATAENDS

STACKSEGMENT'stack'

DB200DUP(0)

STACKENDS

CODESEGMENT

ASSUMEDS:

DATA,SS:

STACK,CS:

CODE

START:

MOVDI,1000

MOVCX,8

MOVSI,2000

CLC

LOP:

MOVAL,[SI]

ADC[DI],AL

INCSI

INCDI

LOOPLOP

INT20

ENDSTART

步骤:

1)用A命令键入此程序

 

2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。

3)用G命令运行此程序,并用D命令检查其结果(存放在哪里?

),是否正确?

 

4)将INT20H指令改为INT3,有何区别?

若这条指令不加,行不行?

试一试。

 

4.自编程序

程序内容:

DESGSEGMENT

DATA1WD0F865H

DATA2WD360CH

DSEGENDS

;

ESEGSEGMENT

SUBWD2DUP(?

ESEGENDS

;

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG,ES:

ESEG

START:

MOVAX,DSEG

MOVDS,AX

MOVAX,ESEG

MOVES,AX

LEASI,SUB

MOVAX,DATA1

SUBAX,DATA2

MOVES:

[SI],AX

HLT

CSEGENDS

ENDSTART

 

五、实验心得 

1、 通过本次实验,首先了解到了N命令给程序文件命名、W命令存盘及Q命令退出

DEBUG ; 

2、 对G命令也有了新的认识,如G命令等号后的地址指定程序段运行的起始地址。

 

3、 为了使指令中存储单元操作数具有明确的属性,我们可以使用强制属性操作符

PTR。

 

4、 通过本次实验,更加了解到了中断指令INT使用。

该指令执行完后,CPU将转去

执行中断服务程序。

程序遇到断点(INT3),停止执行,并显示当前所有寄存器和标志位的内容、以及下一条将要执行的指令,以便观察程序运行到此的情况。

程序正常结束,将显示“Program terminated normally”

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

当前位置:首页 > 高等教育 > 艺术

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

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