第一范文网 - 专业文章范例文档资料分享平台

微机原理与接口实验指导书 - 图文 (4)

来源:用户分享 时间:2020-06-28 本文由一身傲气王 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

微机原理与接口实验指导书

SBB DX,BX IDIV X

MOV RESULT,AX MOV RESULT+2,DX MOV AH,4CH INT 21H CODE ENDS

END START 二、分支结构程序设计。 1. 问题

在数据区中定义三个带符号数的字节变量,编写程序将其中的最大数找出来送到MAX单元。 2. 设计思想

1) 本实验将用到带符号数比较转移指令。

2) 可先比较两个数,选出其中大者,再与第三个数比较。

3. 程序流程图

开始

程序初始化,AL?X

Y AL>Y?

N AL?Y

Y AL>Z?

N AL?Z A MAX?AL

15

结束 微机原理与接口实验指导书

4.程序

DATA SEGMENT

X DB 115 Y DB 23 Z DB -20 MAX DB ? DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,X CMP AL,Y JG NEXT MOV AL,Y NEXT: CMP AL,Z JG OK MOV AL,Z OK: MOV MAX,AL MOV AH,4CH INT 21H CODE ENDS

END START 三、循环程序设计 1.问题

编程将数据段STR1单元开始的N个字符移到STR2开始的区域。

2. 设计思想

1) 本实验为数据块移动操作,既可用MOV传送指令,也可用串操作指令。

2) 可以从数据块的首地址开始也可从末地址开始。

2. 参考流程图(MOV指令,首地址开始):

16

微机原理与接口实验指导书

开始 程序初始化,SI?STR1首地址, DI?STR2首地址,CX?循环次数 Y 实现单个字符的传送

地址指针加1调整

N

Y 结束

4. 参考程序。

DATA SEGMENT

STR1 DB ‘WHAT IS YOU NAME?’,0AH,0DH,’$’ CN EQU $-STR1 STR2 DB CN DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV CX,CN LEA SI,STR1 LEA DI,STR2 LP: MOV AL,[SI] MOV [DI],AL INC SI INC DI LOOP LP

MOV AH,4CH INT 21H CODE ENDS

END START

17

CX-1=0? 微机原理与接口实验指导书

四、子程序设计 1.问题

从键盘向缓冲区BUF输入若干位十进制数的ASCII码,转换成二进制数存于BIN开始的字单元中。BUF中的数字以0DH结束。

2. 设计思想

1) 本实验将用到DOS功能调用的1号功能。

2) 可以边读键盘输入边存入到BUF开始的缓冲区,0DH结束。

3) 设输入的十进制数为d4d3d2d1d0(不超过65535,化为二进制数后为16位)。则d4d3d2d1d0=((((0?10+d4)?10+d3)?10+d2)?10+d1)?10+d0。

4) 可把di+1?10+di设计为子程序,调用次数=输入数据位数。

3. 参考程序

DATA SEGMENT

BUF DB 5 DUP(?) BIN DW ? DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,BUF MOV CX,0 MOV AH,1 SCAN: INT 21H CMP AL,0DH JE CVT SUB AL,30H MOV [SI],AL INC SI INC CX JMP SCAN CVT: LEA SI,BUF LEA DI,BIN CALL CHANGE MOV AH,4CH INT 21H ;子程序:CHANGE CHANGE PROC NEAR PUSH DX PUSH BX MOV AX,0 MOV DX,10

18

微机原理与接口实验指导书

NEXT: PUSH DX MUL DX POP DX MOV BL,[SI] MOV BH,0 ADD AX,BX INC SI LOOP NEXT MOV [DI],AX POP BX POP DX RET CHANGE ENDP CODE ENDS

END START 五、中断调用程序设计 1.问题

1) 接收键盘输入的字符。

2) 将其中的小写字母转换为大写字母,放到输入缓冲区。 3) 遇到回车符表示本次输入结束,显示输入缓冲区的内容。 4) CTRL+C表示程序结束。

2. 设计思想

1) 用DOS中断中的01H号功能实现读键盘输入,用09H号功能实现显示。

2) 边读入字符边判别边存放,若是大写字母(41H~5AH)不转换,若是小写字母(61H~7AH)则转换,若是回车符(0DH)则显示缓冲区的内容,若是CTRL+C(03H)则结束程序。

3) 显示缓冲区内容时要在末尾添加0AH,’$’。

3. 参考程序。

DATA SEGMENT

BUF DB 80 DUP(?) DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX

MOV BX,OFFSET BUF

LP: MOV SI,0 LP1: MOV AH,1

INT 21H CMP AL,03H

19

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新初中教育微机原理与接口实验指导书 - 图文 (4)全文阅读和word下载服务。

微机原理与接口实验指导书 - 图文 (4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1106515.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top