2-子程序

第一次作业给删了,懒得再做一次了。。。

1.阅读下面子程序,说明它完成的功能是什么?子程序的入口参数和出口参数各是什么?

子程序的功能:先将AX,DX清空,然后用循环将DS*16+BX处开始、CX个字单元的内容累加到DX:AX中。

入口参数:DS,BX,CX

出口参数:DX,AX

 

2.编写一个计算字符串长度的子程序,字符串以0结尾。入口参数:字符串的首地址指针为DS:SI;出口地址:在AX中返回字符串的长度。(直接在文本框中写出子程序部分即可,不要上传图片或附件)。

length proc

mov ax,0

mov bh,0

again:add ax,1

add si,1

mov bx,[si-1]

cmp bx,48

jne again

ret

length endp

 

3.编写程序,将字符串STRING1的内容复制到字符串STRING2中,要求由子程序来实现字符串的复制,并采用堆栈来传递参数。

data segment

STRING1 db "onetwo",0

STRING2 db "123456",0

data ends

 

stack segment

db 50 dup(?)

stack ends

 

code segment

assume    cs:code,ds:data

 

copy proc

mov cx,0

mov dh,0

again:add cx,1

add bx,1

mov dl,ds:[bx-1]

push dx

cmp dl,0

jne again

 

paste:mov si,cx

pop dx

mov ds:[bp+si-1],dl

loop paste

ret

copy endp

 

start:

mov ax,data

mov ds,ax

mov bx,offset STRING1

mov bp,offset STRING2

call copy

 

mov ax,4c00h

int 21h

code ends

end start

 

复制前

 2-子程序

复制后

2-子程序

 

 

 

 

上一篇:汇编程序的简化写法


下一篇:汇编语言(王爽第三版)实验四