微机原理实验4——子程序的定义与调用

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

班级:计科1202班姓名:陈秉耀学号:201216010106

实验4——子程序的定义与调用

1、实验目的

掌握子程序编写和调用;

掌握子程序的参数传递和返回值的获取方法;

2、实验内容

实验2(2):“调用DOS中断,完成字符串的以下输入和输出操作。具体要求是:①调用INT 21H的AH=09H子功能输出提示信息“Input String:”,②调用INT 21H的AH=0AH 子功能输入一个字符串,③输出回车(ASCII码为0DH)、换行(ASCII码为0AH),④将输入字符逐一改大写后输出。

设计四个子程序,分别对应上面每一小步子功能,在主程序调用。

============================================================================ ====

实验报告

============================================================================ ====

DATAS SEGMENT

;此处输入数据段代码

keynum =255

string db keynum;定义键盘需要的缓冲区

db 0

db keynum dup(0)

string1 db'Input String',"$"

DATAS ENDS

STACKS SEGMENT

;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

MOV AX,DATAS

MOV DS,AX

;此处输入代码段代码

call dp1

call dp2

call dp3

call dp4

MOV AH,4CH

INT 21H

;输出提示信息Input String

dp1 proc

push dx

mov ah,09h

mov dx,offset string1

int 21h

pop dx

ret

dp1 endp

;输出回车,换行

dp2 proc

push ax

mov ah,02h

mov dl,0dh

int 21h

mov ah,02h

mov dl,0ah

int 21h

pop ax

ret

dp2 endp

;输入一个字符串

dp3 proc

push dx

mov dx,offset string

mov ah,0ah

int 21h

pop dx

ret

dp3 endp

;将输入字符逐一改大写后输出

dp4 proc

push bx

mov dl,0ah ;换行

mov ah,2

int 21h

mov bx,offset string+1

mov cl,[bx]

mov ch,0

again: inc bx

mov dl,[bx]

cmp dl,'a'

jb disp

cmp dl,'z';比较是否为小写字母

ja disp

sub dl,20h;将小写字母转化为大写字母

disp:mov ah,2

int 21h

loop again

pop bx

ret

dp4 endp CODES ENDS

end start

\

相关文档
最新文档