汇编语言程序设计实验报告三(子程序设计实验)

  • 格式:doc
  • 大小:31.00 KB
  • 文档页数:3

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言程序设计实验报告三(子程序设计实验)

一、实验目的

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