子程序设计 实验7

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

一、实验目的

1.掌握CALL指令的使用方法。

2.掌握子程序的定义

3.掌握主程序与子程序之间的调用关系及其调用方法

4.掌握主程序与子程序间参数的传递方法(寄存器、存储器、堆栈)

二、实验内容

1.将AX中的值以十六进制形式显示。

要求:

主程序利用寄存器把AX的值传送给子程序。

在子程序中将AX中的值以十六进制形式显示。

2.编写子程序,完成的功能是将DL中的2位十六进制数转换为对应ASCII

码。

说明:入口参数AL=待转换的2位十六进制数

出口参数DX=转换后的ASCII码,(高字节对应高位、低字节

对应低位)

举例:若AL=2AH,则DX=3241H。

0----9转换为30H----39H +30H

A---F转换为41H----4FH +30H+7H

三、程序流程图

1.

N

子程序 let 2 开始

显示提示 1

bx < - a x

bx 左移 4 位

查表 , 形成十六

进制数

显示十六进制数

显示 4 位 了 ?

ret 返回主

程序

Y

子程序 let 1 开始

键盘输

ESC ? 结束

Y

N

其它字

符 ?

形成十进制

保存 x

ret 返回主

程序

N

Y 主程序开始

数据段定义

初始化 , x = 0

start

显示提示 1

ax < - x

call let 1

call let 2

2.

主程序开始

数据段定义

初始化数据段,a<-count,si<-0

start

let0

取x,al<-x,call let2

out1

Inc si,dec

a

a>0 ?

结束

al<-al+30h dl<-al

子程序开始

bl

bl

rept1

al 左移4位,保留低4位

al>9 ?

al<-al+37h

是ch=1 ?

是dl<-al

ch=0 ?

ret,返回主

程序

四.代码 1.

data segment x dw 0

mess1 db 0dh,0ah,'input dec = $' mess2 db 0dh,0ah,'out HEX = $' hex db '0123456789ABCDEF' data ends

CODE SEGMENT 'CODE'

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

let0: mov x,0

mov dx,offset mess1

mov ah,9

int 21h

call let1

mov ax,x

call let2

jmp let0

let1: ;键盘输入数并转换十进制数,入口参数ah,出口参数x mov ah,1

int 21h

cmp al,27

jz out1

sub al,30h

jl exit

cmp al,9

jg exit

mov ah,0

xchg ax,x

mov cx,10

mul cx

xchg ax,x

add x,ax

jmp let1

exit:ret

let2: ;显示十六进制数,入口参数ax,出口参数dl

mov dx,offset mess2

mov bx,ax

mov ah,9

int 21h

mov ch,4

mov cl,4

rept1:

rol bx,cl

mov al,bl

and ax,000fh

mov si,ax

mov dl,hex[si]

mov ah,2

int 21h

dec ch

jnz rept1

ret

out1:

mov ah,4ch

int 21h

code ends

end start

2.

data segment

x db 12h,3ah,0b4h

count=$-offset x

a d

b ?

data ends

CODE SEGMENT 'CODE'

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

mov a,count

mov si,0

let0:

mov al,x[si]

call let2

jmp out1

let2: ;将dl中的两位十六进制数转化成对应的ASC2码,入口参

数:al,出口参数:dx

mov ch,2

mov cl,4

mov bl,al

rept1:

rol bl,cl

mov al,bl

and al,0fh

相关文档
最新文档