carryflag

    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.

    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 在這種情況下,不從這個四位產生的進位,輔助進