Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 汇编语言除法余数DX寄存器_C_Assembly_X86_Inline Assembly_Division - Fatal编程技术网

C 汇编语言除法余数DX寄存器

C 汇编语言除法余数DX寄存器,c,assembly,x86,inline-assembly,division,C,Assembly,X86,Inline Assembly,Division,我的程序差不多完成了。我试图将CBA0123h除以B000h。商的结果是正确的。但是,应该在dx寄存器中的其余部分应为:EA61(http://www.miniwebtool.com/hex-calculator/?number1=CBA0123&operate=4&number2=B000),而是A123。我想这和小恩迪安或其他什么有关。但我需要解决这个问题。我该怎么办?我旋转钻头吗?我以前从没见过怎么做。如何从这个除法问题中得到正确的余数 int main(int argc, char* a

我的程序差不多完成了。我试图将CBA0123h除以B000h。商的结果是正确的。但是,应该在dx寄存器中的其余部分应为:EA61(http://www.miniwebtool.com/hex-calculator/?number1=CBA0123&operate=4&number2=B000),而是A123。我想这和小恩迪安或其他什么有关。但我需要解决这个问题。我该怎么办?我旋转钻头吗?我以前从没见过怎么做。如何从这个除法问题中得到正确的余数

int main(int argc, char* argv[])
{
unsigned short int IDQUO = 0x0;
unsigned short int IDREM = 0x0;

    mov     dx, 0CBAh       
    mov     ax, 0123h       
    mov     bx, 0B000h      
    div     bx              
    mov     IDQUO, ax       
    mov     IDREM, dx       
return(0);
}

CBA0123h=B000h*1282+A123h。DX值是正确的。

为什么您认为余数应该是
0xea61
<代码>0xa123是:

#包括
内部主(空)
{
printf(“%x\n”,0xCBA0123%0xB000);
}

输出:
a123

@user1193717余数不是这样工作的。这是
CBA0123h/B000h
@user1193717的二进制表示法:它不会给你一个余数。引用:
CBA0123h÷B000=1282.ea61745d17
-这是一个分数结果。@user1193717:余数与除法结果的分数部分不同。
#include <stdio.h>

int main(void)
{
    printf("%x\n", 0xCBA0123 % 0xB000);
}