inline-assembly

    0熱度

    2回答

    我在將內聯彙編程序功能轉換爲.asm文件時遇到問題。我需要單獨的內聯彙編代碼,因爲在x64架構中不支持內聯彙編。 下面是代碼, #include <windows.h> #include <string> #include <iostream> #include <tlhelp32.h> using namespace std; int filter(int code)

    0熱度

    2回答

    我有一個複雜的問題需要解決,因爲我卡住了,根本沒有辦法解決這個問題。 這裏有一個代碼 struct MyStruct { int x; float y; char c; }; void foo(MyStruct a_myStruct); int _tmain(int argc, _TCHAR* argv[]) { void *pMyStru

    5熱度

    1回答

    如果非要在Windows VC++下面的代碼: DWORD somevar = 0x12345678; _asm call dword ptr [somevar] 我怎樣才能使GCC內聯彙編同樣的事情,與AT & T語法? __asm__ __volatile__ ( "call dword ptr [%%edx]" : : "d" (somevar) ); 我已經試

    4熱度

    2回答

    經過大量的網絡研究之後,我在C++程序中實現了一個小型彙編程序,以便使用cpuid獲得CPU的L1高速緩存大小。 int CPUID_getL1CacheSize() { int l1CacheSize = -1; asm ("mov $5, %%eax\n\t" // EAX=80000005h: L1 Cache and TLB Identifiers "

    3熱度

    1回答

    我正在爲8086處理器編寫小內核(在BC3.1中,在Windows XP上作爲主機操作系統工作)。內核是多線程的,所以當我使用printf或cout進行調試時(在代碼中的某處,printf將InterruptEnable標誌設置爲1,並且我的計時器中斷例程調用了調度並且代碼崩潰),我遇到了問題。 正因爲如此,我在聯彙編寫的簡單puts功能: void _printf(char *c) {

    1熱度

    1回答

    我在C++/CLI中使用Inline asm。可怕的問題實際上可能是我所忽視的一個錯誤。 我從一個函數調用向另一個函數傳遞矢量。如果我在被調用的函數內部註釋了_asm {....一些彙編代碼}的整個代碼片段,其中從其他函數向其提供的向量使用,則沒有問題整個向量可以正確地複製到調用函數的參數中以正確的方式。 但是如果uncmment _asm {}我的意思是如果我在被調用的函數中使用_asm {}補

    4熱度

    2回答

    我有一個代碼可以改變將被調用的函數到我的新函數,但我不想只調用我的新函數,我也想調用舊函數。 這是一個例子,這樣你就可以明白我在說什麼: 如果我拆開我的.exe文件,我會看這個部分: L0: mov eax, [L00654321] //doesn't matter mov ecx, [eax+1Ch] //doesn't matter push esi

    1熱度

    3回答

    我怎樣才能從堆棧寫入字符串(例如「Hello」)到標準輸出?沒有,數據段,也就是說。 void main() { __asm__( "movl $0x4, %eax \n\t" "movl $0x1, %ebx \n\t" // put "Hello" on the stack and load its address into %ecx

    2熱度

    4回答

    編譯錯誤,我不明白爲什麼這個代碼 #include <iostream> using namespace std; int main(){ int result=0; _asm{ mov eax,3; MUL eax,3; mov result,eax; } cout<<result<<endl; ret

    1熱度

    1回答

    當讀的Linux內核0.01我傳丟,這是很難的一些行內的氣體爲我解碼: __asm__("movl $0x3ff000,%%eax\n\t" "movl %%eax,%%db0\n\t" "movl $0x000d0303,%%eax\n\t" "movl %%eax,%%db7" :::"ax") 或 __asm__("push %%f