汇编写 c = add(a,b) + sub(a,b) 修改版
本帖最后由 sdnyzjzx 于 2010-12-29 21:54 编辑用汇编多次写了下这个题目的代码,后来想,数据在主程序里已经入栈了,就可应该可以直接用,本着这个原则来修改的。修改后,在 add 与 sub 两个函数里,寻址的偏移稍微麻烦了点,中间有个 sub sp,2 也要占一个字节空间,这点开始是没想到,所以没找对,后来观察了下堆栈,明白了,这样写法也不知道是好还是坏,刚开始写代码,也不懂,还请多多指教!assume cs:code
stack segment
db 100h dup (0)
stack ends
code segment
fun_add:
push bp
mov bp,sp
mov ax,
mov dx,
add ax,dx
mov sp,bp
pop bp
ret
fun_sub:
push bp
mov bp,sp
mov ax,
mov dx,
sub ax,dx
mov sp,bp
pop bp
ret
fun_fun:
push bp
mov bp,sp
sub sp,2 ;申请出了空间
call fun_add
mov ,ax
call fun_sub
add ax,
mov sp,bp
pop bp
ret
start: mov ax,stack
mov ss,ax
mov sp,100h
mov ax,20h
push ax
mov ax,10h
push ax
call fun_fun
add sp,4
mov ax,4c00h
int 21h
code ends
end start
这样 不通用哦这个函数 可以COPY到其他工程么
页:
[1]