inline-assembly

    0熱度

    1回答

    我有一個內聯彙編代碼,有兩條小線。我想在第二行中使用從第一行檢索的輸出操作數作爲輸入操作數。我想知道是否有可能。這裏是我的代碼: asm volatile( "umull %0, %1, %3, %4; \n\t" "adds %2, %5, %0; \n\t" :"=r"(mullo2), "=r"(mulhi2), "=r"(temp)

    4熱度

    1回答

    我試着寫與至強融核平臺KNC一些指令內聯彙編代碼,使用k1om-mpss-linux-gcc編譯器。我想在我的代碼中使用一個掩碼寄存器來向量化我的計算。這是我的代碼: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include <assert.h> #include <

    0熱度

    2回答

    我想通過asm內聯一個分支來調用c中的外部函數。我正在編譯爲arm m0指令集,但它返回的是錯誤的表達式。 的代碼是: __asm volatile ( " cmp r3,#0 \n" " b %[my_function] \n" //Call function " bx r14 \n" : //

    0熱度

    2回答

    由於我的問題的標題說sleep()函數正常工作(和C函數中的每個其他函數調用,問題是它完成運行後I得到的錯誤如下: 「運行時檢查失敗#0 - ESP的值未正確保存在函數調用中,這通常是調用一個函數指針調用約定的函數的結果「 我相信我在調用睡眠函數時處理寄存器的方式是正確完成的,因爲它實際上起作用了,我發佈了整個函數以防萬一需要在另一個函數調用中檢測我可能在哪裏放置棧內容。 該功能基本上打印從底部最

    0熱度

    1回答

    我想解決一些內聯SSE2程序集的總線錯誤。源代碼有一個使用5個指針的宏,我懷疑其中一個沒有對齊。 我在源代碼行設置了一個斷點。但是當我執行disass時,它會從函數的頂部反彙編,而不是調試器停止的地方。有數百條裝配線,所以它對我沒有什麼幫助。按ENTER響應「按ENTER鍵繼續」的響應時間爲30到40次,響應速度很快。 我嘗試了一個disass $pc,但是它從函數的頂部進行了dsassemble

    3熱度

    1回答

    我有興趣瞭解程序員如何在純Common Common Lisp中運行(或者,在特定於實現的擴展中失敗)。谷歌還沒有找到我有關這方面的很多信息,所以我想聽聽專家們的說法。 This post提到了SBCL的一個特性來定義作者稱之爲「虛擬操作符」的內容,但是搜索「常見的lisp虛擬操作符」並沒有產生太多的效果。作者還提到要找到有關它的文檔是多麼困難。對於其他實現是否存在類似的系統,標準中是否有任何基礎

    5熱度

    1回答

    #include <stdio.h> int main(){ __asm__ ( "result: \n\t" ".long 0 \n\t" "rdtsc \n\t" "movl %eax, %ecx\n\t" "rdtsc \n\t" "subl %ecx, %eax\n\t"

    2熱度

    1回答

    我正在嘗試編寫一個程序來讀取一個句子並計算大寫字母的數量。 具體我想轉換如下圖所示成彙編語言的C代碼: scanf("%c", &L); while(L !='\n') { if(L>='A' && L<='Z') V++; scanf("%c", &L); } 這裏是我的代碼進行組裝: _asm { call read mov

    6熱度

    2回答

    我寫了一個簡單的彙編程序: section .data str_out db "%d ",10,0 section .text extern printf extern exit global main main: MOV EDX, ESP MOV EAX, EDX PUSH EAX PUSH str_out CALL printf SUB ESP, 8 ; cleanu

    3熱度

    3回答

    我需要處理來自舊式Mac時代(舊式Motorola CPU)的文件。字節是大端,所以我有一個功能,交換和INT64英特爾小端。該功能是ASM,適用於32位CPU,但不適用於64位。對於64位,我有一個不是ASM的功能。我想結合使用IFDEF的功能。我可以這樣做嗎?這會成爲一個問題嗎? interface function SwapInt64(Value: Int64): Int64; asse