inline-assembly

    0熱度

    1回答

    你們能告訴我我在哪裏弄錯了嗎? 我需要在inline-assembly -2xy-3z中計算它。 int solution(int x, int y, int z) { x=4; y=5; z=2; int result; __asm { mov eax, -2 imul [x] imul [y]

    0熱度

    1回答

    使用GCC和inline assembly,我想立即加載一個特定的寄存器r0。但是,我沒有得到正確的結果。 unsigned short value = 0x1337; asm volatile ( "li 0, %0\n\t" "sc\n\t" "blr" : /* Output registers */ :"r"(value) /* Input registe

    2熱度

    1回答

    對於娛樂,我正在學習GNU擴展程序集,使用帶有32位Linux目標的x86的AT & T語法。我剛剛花了最後三個小時編碼兩個可能的解決方案,以交換兩個整數變量a和b的值,我的解決方案都不能完全解決我的問題。首先,讓我們來看看我的TODO障礙在一些細節: int main() { int a = 2, b = 1; printf("a is %d, b is %d\n", a,

    0熱度

    1回答

    我試圖將我的C代碼轉換爲x86-64。我的目標是扭轉鏈接列表。傳入的兩個參數是頭部ptr和偏移量以獲取指針字段的地址(即指向列表中下一個節點的指針)。 據我所知,頭ptr通過rdi寄存器傳入,偏移量通過rsi寄存器傳入。當它到達「mov rcx,[rbx]」行時,我不斷收到分段錯誤。「只有「mov rcx,rbx」並且後面的行從「mov [rbx],rdx」更改爲「mov rbx,rdx」時,分段

    0熱度

    1回答

    我試圖交換使用GNU擴展組件兩個整型變量,這裏就是我現在: int main() { int a = 2; int b = 1; printf("a is %d, b is %d\n", a, b); // TODO (student): swap a and b using inline assembly printf("a is %d, b

    -1熱度

    1回答

    我想編譯一個簡單的C程序(Win7 32bit,Mingw32 Shell和GCC 5.3.0)。 C代碼是這樣的: #include <stdio.h> #include <stdlib.h> #define _set_tssldt_desc(n,addr,type) \ __asm__ ("movw $104,%1\n\t" \ :\ :"a" (addr),\

    0熱度

    1回答

    我想了解的彙編代碼的一些片段: ".syntax unified\n" "1:\n" " NOP\n" " NOP\n" " NOP\n" " NOP\n" " NOP\n" " CMP %[SystemCoreClock],%[clock16MHz]\n" " BEQ.n 2f\n" " NOP\

    0熱度

    1回答

    我在寫一個內聯彙編代碼來讀取實時時鐘。我正在加載寄存器編號(4)以讀取到'dl'並將其加載到端口0x70。我正在嘗試將這個寄存器值(4)讀入al。欲瞭解更多信息 - RTC asm( "mov $4, %%dl;" "out 0x70, %%dl;" "in %%al, 0x71;" : : :"%al","%dl" ); 我正在上編譯包含該代碼的C文件下面的錯誤消息。 Assem

    0熱度

    1回答

    我想寫使用內聯彙編用C離開操作的旋轉,像這樣: byte rotate_left(byte a) { __asm__("rol %0, $1": "=a" (a) : "a" (a)); return a; } (凡字節通過typedef unsigned char型)。 這就提出了一個錯誤 /tmp/ccKYcEHR.s:363: Error: operand size

    2熱度

    1回答

    我正在處理一個分配,我必須將C代碼片段轉換爲內聯彙編。該代碼是呈現Julia分形的程序的一部分。 我已經測試了兩個代碼片段的輸出,並且它們完全匹配,但是我的程序仍然輸出不同的圖像(適用於C代碼的Julia分形,內聯彙編代碼的扁平粉色屏幕)。 這是函數的開始部分以及返回 COLORREF render_point(const double &a, const double &b,