MOV AX,A
IMUL B
MOV BX,AX
MOV CX,DX
MOV AX,C
CWD
ADD AX,BX
ADC DX,CX
IDIV A
// A B C中各存有16位有符号数a b c~!实现(a*b+c)/a
{//ADC DX,CX}这句能不能给解释下~!不懂~!
MOV AX,A
IMUL B
MOV BX,AX
MOV CX,DX
MOV AX,C
CWD
ADD AX,BX
ADC DX,CX
IDIV A
// A B C中各存有16位有符号数a b c~!实现(a*b+c)/a
{//ADC DX,CX}这句能不能给解释下~!不懂~!
你的代码有错误
MOV AX,A ;将立即数送入寄存器AX
MOV DX,0 ;将寄存器DX送零
IMUL B ;实现a*b 并将结果自动存入DX:AX(DX中的值一般为00 00)
MOV BX,AX ;将AX的值送入BX
MOV AX,C ;将立即数送入寄存器AX
ADD AX,BX ;实现a*b+c,结果放在AX中
CWD AX ;将除数AX扩展成双字类型
MOV CX, A ;得结果(a*b+c)/a