首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

除法产生的意外结果取决于我使用的是EAX、AX还是AL

EAX、AX、AL都是指8086微处理器的寄存器。它们的不同使用会影响除法操作的结果。

  1. EAX寄存器:EAX是32位寄存器,它是累加寄存器。在进行除法操作时,EAX存储被除数,商结果存放在EAX寄存器中。
  2. AX寄存器:AX是16位寄存器,它是累加寄存器的低16位。在进行除法操作时,AX存储被除数的低16位,商结果的低16位存放在AX寄存器中。
  3. AL寄存器:AL是8位寄存器,它是累加寄存器的低8位。在进行除法操作时,AL存储被除数的低8位,商结果的低8位存放在AL寄存器中。

需要注意的是,除法操作是有溢出和余数的。对于EAX和AX寄存器来说,商的高位存放在EDX寄存器中;对于AL寄存器来说,商的高位存放在AH寄存器中。

总结:

  • 使用EAX寄存器进行除法操作,可以获得32位的商结果。
  • 使用AX寄存器进行除法操作,可以获得16位的商结果。
  • 使用AL寄存器进行除法操作,可以获得8位的商结果。

云计算中并没有直接与除法操作相关的概念或产品。除法操作是计算机底层的数学运算,与云计算的各种服务和功能没有直接关联。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Win32汇编:算数运算指令总结

,通常该指令都接受寄存器操作数,也接受内存操作数,但是不接受立即数,且乘数与被乘数大小必须相同,乘基尺寸乘数/被乘数两倍.MUL乘法指令有三种格式: 第一种将8位操作数与AL相乘,结果放入AX中,第二种将...,唯一不同在于有符号除法在进行相除操作时需要符号扩展.首先我们先来学习一下DIV无符号除法运算使用技巧,分别演示8/16/32位无符号除法使用方式..386p.model flat,stdcalloption...AL符号位至AH中,保留了数字符号.CWD 指令 将字符号扩展至双字,指令扩展AX符号位至DX中.CDQ 指令 双字符号扩展至八字节,指令扩展EAX符号位至EDX中.当使用符号扩展指令扩展后,寄存器就可以被用来计算有符号除法了...,起作用都是将源操作数与目的操作数以及进位等相加减.以扩展加法为例,计算两个8位整数相加(FFh+FFh)产生16位结果将被存放在DL:AL (01feh)中,如果计算两个32位整数相加(FFFFFFFFh...,除数范围也被限定在了2/4/8这样范围之内,如果计算非2次幂该怎么写呢,如下计算非2次幂计算方式,通常情况下编译器会将除法运算转换为乘法,如果需要知道除数是多少则可以使用公式2^(32+

46830

Win32汇编:算数运算指令总结

,能够在不查表情况下逆推出其左移或者右移中乘数或除数具体值,如果比较复杂的话还是直接查表来容易一些,此处只是一种思考方式. .386p .model flat,stdcall option...MUL乘法指令有三种格式: 第一种将8位操作数与AL相乘,结果放入AX中,第二种将16位操作数与AX相乘,结果高16位放入DX低16位放入AX,第三种将32位操作数与EAX相乘,结果高32位放入EDX....code main PROC ; 执行8位除法: 83/2 商al41h 余数ah1 xor eax,eax mov ax,0083h ; 被除数...以扩展加法为例,计算两个8位整数相加(FFh+FFh)产生16位结果将被存放在DL:AL (01feh)中,如果计算两个32位整数相加(FFFFFFFFh+FFFFFFFFh),则会在EDX和EAX...2次幂,除数范围也被限定在了2/4/8这样范围之内,如果计算非2次幂该怎么写呢,如下计算非2次幂计算方式,通常情况下编译器会将除法运算转换为乘法,如果需要知道除数是多少则可以使用公式2^

75320
  • 5.4 汇编语言:算数运算指令集

    第一种将8位操作数与AL相乘,结果放入AX中第二种将16位操作数与AX相乘,结果高16位放入DX低16位放入AX第三种将32位操作数与EAX相乘,结果高32位放入EDX第32位放入EAX中. .386p...这两条指令均使用32位被除数,得到32位商和余数。如果被除数16位,则由DX:AX提供了32位被除数。或者如果被除数8位,则AL提供了8位被除数。...code main PROC ; 执行8位除法: 83/2 商al41h 余数ah1 xor eax,eax mov ax,0083h...需要注意,在使用这些指令时需要妥善地处理进位标志位和借位标志位值,以确保计算结果正确性。...FFh)产生16位结果将被存放在DL:AL (01feh)中,如果计算两个32位整数相加(FFFFFFFFh+FFFFFFFFh),则会在EDX和EAX中分别存放00000001h:FFFFFFFEh

    95720

    5.4 汇编语言:算数运算指令集

    MUL乘法指令有三种格式: 第一种将8位操作数与AL相乘,结果放入AX中 第二种将16位操作数与AX相乘,结果高16位放入DX低16位放入AX 第三种将32位操作数与EAX相乘,结果高32位放入EDX...这两条指令均使用32位被除数,得到32位商和余数。如果被除数16位,则由DX:AX提供了32位被除数。或者如果被除数8位,则AL提供了8位被除数。...需要注意,在使用这些指令时需要妥善地处理进位标志位和借位标志位值,以确保计算结果正确性。...以扩展加法为例,计算两个8位整数相加(FFh+FFh)产生16位结果将被存放在DL:AL (01feh)中,如果计算两个32位整数相加(FFFFFFFFh+FFFFFFFFh),则会在EDX和EAX...上方除法运算被除数均为2次幂,除数范围也被限定在了2/4/8这样范围之内,如果计算非2次幂该怎么写呢,如下计算非2次幂计算方式,通常情况下编译器会将除法运算转换为乘法,如果需要知道除数是多少则可以使用公式

    36440

    汇编指令大全

    字节除法AX/SRC商→AL,余数→AH   字除法:DX·AX/SRC商→AX,余数→DX   双字除法:EDX·EAX/SRC商→EAX,余数→EDX   由于被除数必须除数双倍字长,一般应使用扩展指令进行高位扩展...当除数为零或商超过了规定数据类型所能表示范围时,将会出现溢出现象,产生一个中断类型码为“0”中断。执行除法指令后标志位无定义。   ...,将二进制运算结果调整为非压缩BCD码表示形式,而除法调整指令必须放在除法指令之前进行,以避免除法出现错误结果。   ...地址指针修改增量还是减量由方向标志来规定。当DF=0,(E)SI及(E)DI修改为增量;当DF= 1,(E)SI及(E)DI修改为减量。...,AXEAX内容减去ES:(E)DI规定目的串元素,结果不回送,仅影响标志位CF,AF,PF,SF,OF,ZF。

    1.4K10

    汇编知识扫盲之常见汇编指令

    AL/AX/EAX )     XADD  先交换再累加.( 结果在第一个操作数里 )     XLAT  字节查表转换.         ── BX 指向一张 256 字节起点, AL 为表索引值...以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),     AAM  乘法ASCII码调整.     DIV  无符号除法.     IDIV  整数除法.      ...以上两条,结果回送:        商回送AL,余数回送AH, (字节运算);      或 商回送AX,余数回送DX, (字运算).     AAD  除法ASCII码调整.     ...(把AX字符号扩展到EAX中去)     CDQ  双字扩展.  (把EAX符号扩展到EDX中去) 三、逻辑运算指令      AND  与运算.     ...把ALAX内容与目标串作比较,比较结果反映在标志位.     LODS  装入串.       把源串中元素(字或字节)逐一装入ALAX中.       ( LODSB 传送字符.

    1.6K20

    16位汇编指令_汇编语言指令表

    DS(数据段),表示数据段起始地址 ES(附加段),表示附加段起始地址,附加段数据段,用于数据保存,串操作指令将附加段作为其目的操作数存放区域 段前缀CS: ;使用代码段 段前缀SS: ;...AL/AX/EAX )     XADD  先交换再累加.( 结果在第一个操作数里 )     XLAT  字节查表转换.         ── BX 指向一张 256 字节起点, AL 为表索引值...以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算).     AAM  乘法ASCII码调整.     DIV  无符号除法.     IDIV  整数除法.     ...以上两条,结果回送:     商回送AL,余数回送AH, (字节运算); 或商回送AX,余数回送DX, (字运算).     AAD  除法ASCII码调整.     ...把ALAX内容与目标串作比较,比较结果反映在标志位.     LODS  装入串.     把源串中元素(字或字节)逐一装入ALAX中.     ( LODSB 传送字符.

    98030

    汇编语言指令大全(详细)「建议收藏」

    ( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加。( 结果在第一个操作数里 ) XLAT 字节查表转换。...以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM 乘法ASCII码调整。 DIV 无符号除法。 IDIV 整数除法。...以上两条,结果回送: 商回送AL,余数回送AH, (字节运算); 或 商回送AX,余数回送DX, (字运算)。 AAD 除法ASCII码调整。 CBW 字节转换为字。...以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM 乘法ASCII码调整. DIV 无符号除法. IDIV 整数除法....以上两条,结果回送: 商回送AL,余数回送AH, (字节运算); 或 商回送AX,余数回送DX, (字运算). AAD 除法ASCII码调整. CBW 字节转换为字.

    4.3K50

    5.3 汇编语言:字符串操作指令

    这些字符串操作指令通常是通过累加器(即 AH、ALAXEAX 等寄存器)来控制读取或写入数据大小,同时还需要通过 DF 标志位来控制向存储地址增加还是减小。...CMPSB指令将ESI和EDI地址指向内存单元中一个字节进行比较,同时增加或减少ESI和EDI(取决于方向标志位状态)。...SCASB指令:将AL寄存器中值与EDI地址指向内存单元中一个字节进行比较,同时增加或减少EDI(取决于方向标志位状态)。...STOSB指令:将AL寄存器中值存储到EDI地址指向内存单元中,同时增加或减少EDI(取决于方向标志位状态)。STOSW指令:将AX寄存器中值存储到EDI地址指向两个字节内存单元中。...LODSB指令:将ESI地址指向一个字节复制到AL寄存器中,同时增加或减少ESI(取决于方向标志位状态)。

    48420

    5.3 汇编语言:字符串操作指令

    这些字符串操作指令通常是通过累加器(即 AH、ALAXEAX 等寄存器)来控制读取或写入数据大小,同时还需要通过 DF 标志位来控制向存储地址增加还是减小。...CMPSB指令将ESI和EDI地址指向内存单元中一个字节进行比较,同时增加或减少ESI和EDI(取决于方向标志位状态)。...SCASB指令:将AL寄存器中值与EDI地址指向内存单元中一个字节进行比较,同时增加或减少EDI(取决于方向标志位状态)。...STOSB指令:将AL寄存器中值存储到EDI地址指向内存单元中,同时增加或减少EDI(取决于方向标志位状态)。 STOSW指令:将AX寄存器中值存储到EDI地址指向两个字节内存单元中。...LODSB指令:将ESI地址指向一个字节复制到AL寄存器中,同时增加或减少ESI(取决于方向标志位状态)。

    41940

    5.2 汇编语言:标志位测试指令

    汇编语言一种面向机器低级语言,用于编写计算机程序。汇编语言与计算机机器语言非常接近,汇编语言程序可以使用符号、助记符等来代替机器语言二进制码,但最终会被汇编器编译成计算机可执行机器码。...标志位测试指令汇编语言中用于测试处理器标志位状态指令。标志位位于处理器状态寄存器中一组特殊标志,用于指示上一个运算结果是否为零、是否进位/借位、是否溢出等等。...直接操作这些标志位可能会对系统运行产生影响,因此在编程时应该使用相应指令来读写标志寄存器状态。...例如,要判断eax是否为0并跳转到标号END,可以使用以下代码: cmp eax, 0 je END 在这个代码中,CMP指令将eax和0相减,不保存结果,而是设置相应条件码标志位。...以上这些跳转指令中,条件判断所依赖条件码标志位由前一条指令执行结果所决定,因此在使用跳转指令时需要注意前一条指令结果是否符合预期。

    47520

    5.2 汇编语言:标志位测试指令

    汇编语言一种面向机器低级语言,用于编写计算机程序。汇编语言与计算机机器语言非常接近,汇编语言程序可以使用符号、助记符等来代替机器语言二进制码,但最终会被汇编器编译成计算机可执行机器码。...标志位测试指令汇编语言中用于测试处理器标志位状态指令。标志位位于处理器状态寄存器中一组特殊标志,用于指示上一个运算结果是否为零、是否进位/借位、是否溢出等等。...直接操作这些标志位可能会对系统运行产生影响,因此在编程时应该使用相应指令来读写标志寄存器状态。...例如,要判断eax是否为0并跳转到标号END,可以使用以下代码:cmp eax, 0je END在这个代码中,CMP指令将eax和0相减,不保存结果,而是设置相应条件码标志位。...以上这些跳转指令中,条件判断所依赖条件码标志位由前一条指令执行结果所决定,因此在使用跳转指令时需要注意前一条指令结果是否符合预期。

    36420

    DOS子程序汇编样例及详解

    使用visio 绘制程序流程图 【具体内容】 知识总结:Debug中 -P/-G/-T命令区别 1、P和T都是执行,像这个语句add ax,bx ,你不管用哪个,都是执行这一句,但如果call next...LEA指令可以用来将一个内存地址直接赋给目的操作数,例如:lea eax,[ebx+8]就是将ebx+8这个值直接赋给eax,而不是把ebx+8处内存地址里数据赋给eax。...结果:如果 8 位乘法, 结果默认放在 AX 中; 如果 16 位乘法, 结果高位默认在 DX 中存放, 低位在 AX 中存放。...结果:如果除数为8位,则AL存储除法操作商,AH存储除法操作余数;如果除数为16位,则AX存储除法操作商,DX存储除法操作余数。 ​...现在回过头来看我写第一个实验报告,有种莫名感叹,虽然仅过去三周,但是让我对汇编理解产生了翻天覆地变化,我深切地感受到,学习一门语言不只是要逐个学习每一条指令就算掌握了这门语言,更重要地通过实际地在应用中使用

    69820

    Win32汇编:字符串浮点数运算过程

    比较 ESI、EDI; 执行后, ESI 与 EDI 地址移动相应单位 扫描串指令: SCASB、SCASW、SCASD ;依据 AL/AX/EAX数据扫描 EDI 指向数据, 执行后 EDI...自动变化 储存串指令: STOSB、STOSW、STOSD ;将 AL/AX/EAX数据储存到 EDI 给出地址, 执行后 EDI 自动变化 载入串指令: LODSB、LODSW、LODSD...END main 扫描串指令: 扫描串指令包括SCASB、SCASW、SCASD其作用是把AL/AX/EAX值同EDI寻址目标内存中数据相比较,这些指令在一个长字符串或者数组中查找一个值时候特别有用...END main 储存串指令: 存储指令主要包括STOSB、STOSW、STOSD起作用是把AL/AX/EAX数据储存到EDI给出地址中,执行后EDI值根据方向标志增加或减少,该指令常用于初始化内存或堆栈...: 浮点数乘法指令有FMUL/FMULP/FIMUL,浮点数除法则包括FDIV/FDIVP/FIDIV这三种,其主要使用手法与前面的加减法保持一致,下面除法总结. .386p .model

    47820

    Win32汇编:汇编基本知识总结

    )4096字节内存块,分页机制允许同时运行程序使用总内存远大于计算机物理内存,操作系统映射所有页集合称为虚拟内存,操作系统通常都会包含一个虚拟内存管理器程序,分页机制会使人产生内存无限大错觉...例如:EAX寄存器,可被拆分为(AX)16位寄存器来使用,而(AX)16位寄存器还可拆分为AH/AL(高低8位).变址寄存器: CPU内部有2个通用寄存器ESI和EDI,寄存器ESI、EDI称为变址寄存器...eax=00000003main ENDPEND main◆间接寻址◆在处理数组操作时完全使用直接寻址不切实际,我们不大可能为数组每个元素都提供一个不同标号,也不太可能使用非常多常量偏移地址去寻址数组各个元素...这里显示第几个字符; 本例结果 6L2:retmain ENDPEND mainSTOSB 存储字串: 将 AL/AX/EAX数据储存到 EDI 给出地址, 执行后 EDI 自动变化.datalen...AL/AX/EAX, 执行后 ESI 自动变化,如下累加求和.dataArray WORD 1,2,3,4,5,6,7,8,9,10.codemain PROClea esi,Arraymov ecx

    1.2K20

    Win32汇编:汇编基本知识总结

    早期CPU全部CISC架构,它设计目的要用最少机器语言指令来完成所需计算任务.比如对于乘法运算,在CISC架构CPU上,您可能只需要一条指令就可以得到相应结果,这些幕后操作全部依赖于CPU...,例如:EAX寄存器,可被拆分为(AX)16位寄存器来使用,而(AX)16位寄存器还可拆分为AH/AL(高低8位)....◆ 在处理数组操作时完全使用直接寻址不切实际,我们不大可能为数组每个元素都提供一个不同标号,也不太可能使用非常多常量偏移地址去寻址数组各个元素,处理数组唯一可行方法用寄存器作为指针并操作寄存器值...-1 neg ecx ; 如果找得到, 这里显示第几个字符; 本例结果 6 L2: ret main ENDP END main STOSB 存储字串: 将 AL/AX...AL/AX/EAX, 执行后 ESI 自动变化,如下累加求和 .data Array WORD 1,2,3,4,5,6,7,8,9,10 .code main PROC lea esi,Array

    93310

    Win32汇编:数组与标志位测试总结

    再次强调:该笔记主要学习汇编语言,不是研究编译特性,不会涉及到编译器优化与代码还原。...codemain PROC; 使用 OFFSET 可返回数据标号偏移地址,单位字节.; 偏移地址代表标号距DS数据段基址距离.xor eax,eaxmov eax,offset WordVar1mov...+ 2] ; ax = 1234h; 使用 LENGTHOF 可以计算数组元素数量xor eax,eaxmov eax,lengthof ArrayDW ; eax =...(或借位)时,CF为1;否则为0mov ax,0ffffhadd ax,1 ; cf = 1 af = 1; PF 奇偶标志位: 当运算结果中,所有bit位(例:1001010)中1个数为偶数时...1; ZF 零标志位: 若当前运算结果为零,则ZF=1; 否则ZF=0mov eax,2sub eax,2 ; zf = 1 cf = 0 af = 0; SF 符号标志位: 若运算结果为负数,则

    43530
    领券