用汇编语言实现 (a*b-c)/d 其中a、b、c、d均为有符号数,急求啊

问题描述:

用汇编语言实现 (a*b-c)/d 其中a、b、c、d均为有符号数,急求啊

你的问题没有写全,缺少一些条件.

假设这些数都是16位变量,程序可以这样写:

mov ax, c     ;取c
cwd           ;将c扩展成32位,在DX,AX中
mov bx, dx    ;将c搬到BX,CX中,腾出AX,用来做乘法
mov cx, ax
mov  ax, a    ;取变量a
imul b        ;乘以b,积是32位的,存在DX,AX中
sub ax, cx    ;积的低位字减c的低位字
sbb dx, bx    ;积的高位字带借位减c的高位字
idiv d        ;除以d,商在AX中,余数在DX中