微机原理实验5
STRING DB'My name is feng kai b11020506',13,10,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, 10
LEA BX, BUF
LEA DX,STRING
LOOP AGAIN
MOV AH, 4CH
INT 21H
HEX2ASC PROC NEAR
MOV DH,AL
PUSH CX
MOV CL,4
SHR DH,CL
CMP DH,9
JBE NEXT1
ADD DH,7
NEXT1: ADD DH,30H
MOV DL,AL
AND DL,0FH
CMP DL,9
JBE NEXT2
ADD DL,7
NEXT2: ADD DL,30H
POP CX
RET
HEX2ASC ENDP
CODE ENDS
END START
实验中出现的问题及解决方法:
在程序运行的过程中结果出现错误,经过分析可知相应寄存器内容改变,是的结果不同,解决方法:在子程序的入口处,将子程序中将要用到的寄存器的原来的内容压入堆栈保存;在子程序结束之前,将压入堆栈寄存器的原来内容恢复出来。
洛阳理工学院实验报告
系别
机械工程系
班级
6班
学号
B11020506
姓名
冯凯
课程名称
微机原理及应用
实验日期
实验名称
实验五子程序设计
成绩
实验目的:
1.掌握子程序的结构和设计方法;
2.掌握子程序的调用和返回指令的用法及执行情况;
3.掌握在子程序调用时堆栈的变化情况;
4.掌握主程序与子程序间参数传递的方法;
5.掌握现场的保护与恢复方法。
实验结果:
实验总结:在做子程序设计的设计实验时,要注意两方面
1、一定要注意参数的传递,参数传递常通过寄存器、存储器、堆栈方式进行。二、注意相应寄存器内容的保护与恢复。
MOV AH,9
INT 21H
AGAIN: MOV AL, [BX]
CALL HEX2ASC
PUSH CX
MOV CX, DX
MOV DL, CH
MOV AH, 2
INT 21H
MOV DL,CL
MOV AH, 2
INT 21H
MOV DL, ' '
MOV AH,2
INT 21H
POP CX
INC BX
实验条件:
1.微型计算机。
实验内容:
已知当前数据段中BUF开始分别存放若干二进制字节数据,编制程序将这些数据分别转换为十六进制数据在屏幕上显示出来,要求十六进制转换ASCII码用子程序实现。
测试程序:
DATA SEGMENT
BUF DB 0ABH,0CDH,0DEH,01H,02H,03H
DB 3AH,4BH,5CH,6FH