
用汇编语言编写子程序后如何调用?
4个回答
展开全部
通过C语言函数形式封装汇编语言程序段,而后就可完全按照C语言函数的形式调用。这种方法保证了子程序段与主程序衔接的完全适配,使用简便。使用方法如下:
用低划线_后接关键字asm指示后面的语句是汇编语句。汇编语句既可以是单句,例如__asm mov bx,1;也可以是复合语句,即,用花括号对包含的多条单句,例如:
__asm
{ mov al, 3
mov dx, 0xE008
add ax,dx
}
在语法规则中,这些语句与C语言的语句完全等价。因此,可以直接进行编译。
用低划线_后接关键字asm指示后面的语句是汇编语句。汇编语句既可以是单句,例如__asm mov bx,1;也可以是复合语句,即,用花括号对包含的多条单句,例如:
__asm
{ mov al, 3
mov dx, 0xE008
add ax,dx
}
在语法规则中,这些语句与C语言的语句完全等价。因此,可以直接进行编译。
展开全部
如果汇编语言自己调用就用个call 就行了,给你举个例子:在运行到需要调用的时候这样用:
call crlf //这里调用crlf这个子程序
crlf proc near //这里写名为crlf的子程序
//子程序代码
ret
crlf endp
call crlf //这里调用crlf这个子程序
crlf proc near //这里写名为crlf的子程序
//子程序代码
ret
crlf endp
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-06-12
展开全部
用汇编语言编写子程序后如何调用?
好意思 一开始没有看到”调用子程序“ 已改正:
data segment
array db '8750423196 $'
data ends
code segment
assume cs:code
main proc far
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
call son
ret
main endp
son proc near
mov cx,9
loop2:
mov bx,cx
lea di,array
loop1:
mov al,[di]
cmp al,[di+1]
jle next
xchg al,[di+1]
mov [di],al
next:
inc di
loop loop1
mov cx,bx
loop loop2
output:
lea dx,array
mov ah,9
int 21h
ret
code ends
end start
7.问候你我的朋友:送你阳光,替你把痛苦蒸发,送你细雨,替你把龌龊冲刷。送你流星,替你带走噩梦,你开心了吧!
好意思 一开始没有看到”调用子程序“ 已改正:
data segment
array db '8750423196 $'
data ends
code segment
assume cs:code
main proc far
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
call son
ret
main endp
son proc near
mov cx,9
loop2:
mov bx,cx
lea di,array
loop1:
mov al,[di]
cmp al,[di+1]
jle next
xchg al,[di+1]
mov [di],al
next:
inc di
loop loop1
mov cx,bx
loop loop2
output:
lea dx,array
mov ah,9
int 21h
ret
code ends
end start
7.问候你我的朋友:送你阳光,替你把痛苦蒸发,送你细雨,替你把龌龊冲刷。送你流星,替你带走噩梦,你开心了吧!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不好意思 一开始没有看到”调用子程序“ 已改正: data segment array db
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询