carryflag

    1热度

    1回答

    我是Assembly的新手,我知道这是一个公平的简单问题。 我应该为$a0和$a2做无符号整数加法,并通过检查进位标志将结果存储在$v0中。 赋值说:只有 使用addu,不add,添加和使用slt用于确定是否增加两个无符号整数产生进位,不使用条件转移指令。 这里是我的代码: addu $v0, $a0, $a2 sltu $t0, $v0, $a0 对于此代码,如果进位制,$t0等于1。 但

    2热度

    2回答

    辅助标志在下半字节产生进位到高位半字节时置位。例如: 1001 9 1001 9 ---- ---- 1 0010 18 在这种情况下,设置腋窝进位。 我也听说这个进位用于在BCD加法期间将0110加到低位半位,以便得到正确的BCD答案。 但考虑这种情况下 1001 9 0011 3 ---- --- 1100 12 在这种情况下,不从这个四位产生的进位,辅助进

    4热度

    1回答

    我正在制作一个6502模拟器,并且我在开始时(实现ADC操作)已经卡住了(或者我认为我至少)。问题是我必须确定是否有进位或溢出。事情是,我无法真正掌握它们在实施中的差异。我知道进位是在操作后出现第9位时,我知道当结果大于255时会发生溢出。这不是确定进位与溢出标志是否相同吗? if(result > 255) { carry = 1; overflow = 1; } else

    2热度

    2回答

    我读过C保存了转换的执行结果,它可以在处理器特定的.h中找到。 这是真的,我应该使用它吗?还是应该自己制定一些结果?

    4热度

    4回答

    什么意思是“将NEG指令应用于非零操作数 始终设置进位标志。” Why does substracting 2 from 1 set the carry flag? 00000001 (1) + 11111110 (-2) [in 2-complement form] --------------------- CF:1 11111111 (-1) [ why is

    1热度

    2回答

    快速提问,我正在阅读Richard C. Detmer编写的题为“80x86汇编语言和计算机体系结构导论”的教科书,并且在第21和22页中讨论了什么是借用的概念,但它并不真正描述它到底是什么。下面是正文: 在计算机中,数字a和b的减法a-b通常通过取b的2的补码并将结果添加到a中来执行。这对应于添加b的否定。例如,对于小数减法195 - 618 = -423, 00C3 - 026A 被改变为另外

    2热度

    1回答

    adc $0指令是在x86/64上添加Carry Flag到%rdx的唯一方法吗? add %rax,%rcx adc $0 ,%rdx

    1热度

    2回答

    我正在写微控制器msp430的模拟器。我不能理解我应该什么时候设置进位。例如在add指令中: 1+0x7FFF设置进位或者1+0xFFFF?

    1热度

    1回答

    我有一个8080处理器的模拟器。我需要编写一个程序,可以移动和添加多个两位数字的数字(因此我可以预期四位数字) 据我所知,intel-8080中的所有数学运算都是在注册'A',但它只能包含两位数字。如果我多“FF”和“FF”,我得到一个溢出。如何绕过这个问题?谷歌表示,这对我的工作有进位标志,这将是“1”,如果溢出发生。 但我不明白,我怎么可以使用它。 感谢您的关注。

    2热度

    2回答

    我想在CUDA PTX中添加两个32位无符号整数,并且我也希望处理进位传播。我使用下面的代码来做到这一点,但结果并不如预期。 根据documentation,add.cc.u32 d, a, b执行整数加法并将进位值写入条件码寄存器,即CC.CF。 另一方面,addc.cc.u32 d, a, b通过进位进行整数加法运算,并将进位值写入条件码寄存器。这条指令的语义是 d = a + b + CC.