汇编语言程序设计实验报告三(子程序设计实验)
- 格式:doc
- 大小:31.00 KB
- 文档页数:3
汇编语言程序设计实验报告三(子程序设计实验)
一、实验目的
1、掌握主程序与子程序之间的调用关系及其调用方法。
2、掌握子程序调用过程中近程调用与远程调用的区别。
3、熟练掌握码型变换的程序。
二、实验内容
1、从键盘输入二位非压缩BCD数,存入AX寄存器中,编程实现将其转换为二进制
数,并在屏幕上显示。要求码型转换程序用远程子程序编写,字符显示用近程子程序编写。数据可循环输入,遇‘00’结束。
三、实验准备
1、预习子程序设计的基本方法,根据实验内容要求编写出实验用程序。
2、熟悉键盘输入和字符显示的程序段的编制。
四、实验步骤
1、编辑、汇编源程序,生成可执行文件。
2、执行程序,检查输入、输出结果,看是否正确。如不正确,用DEBUG检查,修改
源程序,再汇编、运行,直到程序正确为止。
3、用DEBUG的T命令或P命令跟踪程序的执行,观察在远程和近程调用过程中,堆
栈的变化情况。
五、实验报告要求
1、分析近程调用和远程调用的主要区别。用DEBUG命令观察执行过程有何不同。
2、分析实验结果及所遇到的问题的解决方法。
主程序流程图
转换子程序TRAN流程图
七、程序清单
STA SEGMENT STACK ’STACK’
DB 100 DUP(0)
STA ENDS
GSAG SEGMENT PARA ‘CODE’
ASSUME CS:CSAG MAIN PROC FAR
STRA T: PUSH DS
SUB AX,AX
PUSH AX
REV: MOV AH,1
INT 21H
MOV BL,AL
INT 21H
MOV AH,AL
MOV AL,BL
CMP AX,3030H
JE ENDTRAN
CALL NEAR PTR TRAN
CALL FAR PTR CON
MOV AL,0DH
CALL FAR PTR DISP
MOV AL,0AH
CALL FAR PTR DISP
MOV AL,0AH
CALL FAR PTR DISP
JMP REV
ENDTRAN: RET
MAIN ENDP
TRAN PROC NEAR
AND AX,0F0FH
MOV BL,AL
MOV BL,AL
MOV CL,3
SHL AL,CL
MOV CL,1
SHL BL,CL
ADD AL,BL
ADD AL,AH
RET
TRAN ENDP
CSAG ENDS
CSBG SEGMENT PARA’CODE’
ASSUME CS:CSBG
CON PROC FAR
PUSH AX
MOV CL,4
SHR AL,CL
ADD AL,30H
CMP AL,39H
JBE CON2
ADD AL,7
CON2: PUSH AX
MOV AL,0DH
CALL FAR PTR DISP
MOV AL,OAH
CALL FAR PTR DISP
POP AX
CALL FAR PTR DISP
POP AX
AND AL,0FH
ADD AL,30H
CMP AL,39H
JBE CON1
ADD AL,7
CON1: CALL FAR PTR DISP
RET
CON EDNP
DISP PROC FAR
PUSH BX
MOV BX,0
MOV AH,14
INT 10H
POP BX
RET
DISP ENDP
CSBG ENDS
END START