微机原理与接口实验指导书
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下载服务。
相关推荐: