哈工程 微机原理实验 实验二.docx

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

哈工程 微机原理实验 实验二.docx

《哈工程 微机原理实验 实验二.docx》由会员分享,可在线阅读,更多相关《哈工程 微机原理实验 实验二.docx(11页珍藏版)》请在冰点文库上搜索。

哈工程 微机原理实验 实验二.docx

哈工程微机原理实验实验二

哈尔滨工程大学

实验报告

 

实验名称:

实验二分支循环程序设计及实现

 

实验室名称:

水声电子信息实验室

哈尔滨工程大学实验室与资产管理处制

 

1.实验名称

分支循环程序设计及实现

2.实验目的

1.学习分支程序、循环结构程序的设计和调试方法;

2.掌握分支、循环等程序的基本结构。

3.通过循环指令、条件转移指令等完成较复杂程序的设计。

3.实验内容与实验步骤

3.1实验一

数据串搬家程序:

BUF1开始的16个以字为单位的数据搬移到BUF2。

编程流程图:

图1实验1的编程框图

程序源代码

DATASEGMENT

BUF1DW1111H,2222H,3333H,4444H,5555H,6666H,7777H,8888H,8888H,7777H,6666H,5555H,4444H,3333H,2222H,1111H

;定义数组

BUF2DW16DUP(?

);定义目标数组

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,16;利用CX确定循环次数

MOVSI,OFFSETBUF1;将BUF1的偏移地址赋给SI

MOVDI,OFFSETBUF2;将BUF2的偏移地址赋给DI

KEEPUP:

MOVBX,[SI];将BUF1中的数取出,赋给BX

MOV[DI],BX;将BUF1中的数赋给BUF2

INCSI;SI指向下一个数的地址

INCSI;DI指向下一个数的地址

INCDI

INCDI

LOOPKEEPUP

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

上机运行这段程序,可以得到如下结果。

图2实验1的编程结果

可以看出,内存中的BUF2位置已经被复制了BUF1的数据,证明程序运行正常,符合要求。

3.2实验二

将BUF1开始的16个以字为单位的数据中的正数搬移到BUF2。

编程流程图:

图3实验2的编程框图

程序源代码:

DATASEGMENT

BUF1DW1111H,2222H,3333H,4444H,8888H,9999H,0AAAAH,0BBBBH,

0123H,0234H,0345H,4567H,89ABH,8123H,8124H,8943H

BUF2DW16DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,16

MOVDI,OFFSETBUF1

MOVBX,OFFSETBUF2

KEEPUP:

MOVAX,[DI]

TESTAX,8000H

JZPOSITIVE

JMPGOON

POSITIVE:

MOV[BX],AX

INCBX

INCBX

GOON:

INCDI

INCDI

LOOPKEEPUP

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行程序,我得到了如下结果。

图4结果取出正数

正数结果已经取出。

3.3实验三

已知数据区STRINGA开始的存储单元中,存有用大写字母表示的自己姓名的全拼,将其转换成小写字母后,存放到STRINGB开始的存储单元中。

编程流程图:

图5实验3的编程框图

程序源代码:

DATASEGMENT

STRINGADB'ZHANGMENGLONG','$'

STRINGBDB15DUP(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,15

MOVSI,OFFSETSTRINGA

MOVDI,OFFSETSTRINGB

KEEPUP:

MOVBX,[SI]

ADDBX,20H

MOV[DI],BX

INCSI

INCDI

LOOPKEEPUP

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行程序,我得到了如下结果。

图6姓名大写拼音转为了小写拼音

3.4实验四

在题2的基础上继续编程,实现当从键盘输入’A’时,在屏幕上显示大写的名字,当输入’B’时,在屏幕上显示小写的名字。

编程流程图:

图7实验4的编程框图

程序源代码:

DATASEGMENT

STRINGADB'ZHANGMENGLONG','$'

STRINGBDB15DUP(?

),'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVCX,15

MOVSI,OFFSETSTRINGA

MOVDI,OFFSETSTRINGB

KEEPUP:

MOVBX,[SI]

ADDBX,20H

MOV[DI],BX

INCSI

INCDI

LOOPKEEPUP

MOVAH,01H;等待输入

INT21H

TESTAL,01H;利用输入最后一位测试

JZNAM;输入B,不为0继续

NUM:

MOVDX,OFFSETSTRINGA

MOVAH,9;输出大写

INT21H

JMPOVER

NAM:

MOVDX,OFFSETSTRINGB;输入A为0输出小写

MOVAH,9

INT21H

OVER:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

运行程序,我得到了如下结果。

图8当输入A时为大写,输入B时为小写

4.实验结果总结

通过实验,我对汇编语言的基本编程方法有了进一步理解。

同时,我对汇编语言之中的分支循环程序基本编程思路更加熟悉。

我也对基本DEBUG命令更加熟练了。

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

当前位置:首页 > 小学教育 > 语文

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

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