(2)清除进位标志
(3)将低字求反,然后 +1
(4)将进位保存宽亮起来
(5)将高位字求反,加上刚才的进位
--------------
XXXX:
MOV AX, X + 1 取 X 的高位字
CMP AX, 32768
JB X_EXIT 是正数慎码宽就跳转
MOV AX, X 取 X 的低位字
XOR AX, 0FFFFH 取反
ADD AX, 1
PUSHF
MOV X, AX
MOV AX, X + 1 取X 的高位字
XOR AX, 0FFFFH 取反
POPF
ADC AX, 0
MOV X + 1, AX
X_EXIT:
RET
你是指内联汇编吧?比如下面这个例子:
#include <stdio.h>int func(int a, int b)
{
return a - b
}
int main()
{
//计算 12-5
int 饥磨旦a = 12, b = 5 //给定两个数
int res //用来记录结果
__asm{ //内联汇编
push b //b压栈
push a //a压栈,注意C中函数接受参数的时候入栈是反烂扰着的
call func //调用游唯函数func, 返回值保存在eax里
mov res, eax //将eax里的值赋给res
}
printf("%d\n", res) //输出结果,得到7
return 0
}
如果汇编语言自己调用就用个call 就行了,给你举个例子:在运行到需要调用的时毁拆候这样用:call crlf //这里调用crlf这个子程序灶扰
crlf proc near //这里写纤辩枣名为crlf的子程序
//子程序代码
ret
crlf endp
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)