inline-assembly

    1熱度

    2回答

    我遇到了這個內聯asm。如果沒有這個語法,我不知道它應該是什麼樣的......有人可以向我展示它嗎? __asm__ volatile ("lock\n\tincl %0" :"=m"(llvm_cbe_tmp__29) :"m"(*(llvm_cbe_tmp__29))"cc");

    2熱度

    1回答

    這個問題讓我有點瘋狂。該代碼似乎segmentation faulting沒有很好的理由:,只要我有兩個「之前」和「之後」的變量是分段錯誤定義 #define MULT_FLOAT4(X, Y) ({ \ asm volatile (\ "movups (%0), %%xmm0\n\t" \ "mulps (%1), %%xmm0\n\t" \ "mo

    0熱度

    3回答

    我試圖通過sys_write系統調用二進制寫入(到標準輸出或文件),但我只能有文本文件。如何也沒有文字(二進制​​)字節? "mov %eax, %ebx;" "mov $4, %eax;" "mov -0x40(%rbp), %ecx;" "mov $14, %edx;" "int $0x80;" 這個例子,我不能寫14個字節的嘗試,如果他們不是文本的字節(由無文本文件字節長度爲

    3熱度

    5回答

    我在項目中大量使用內聯彙編,在編譯時我需要調用具有未知數量參數的函數,並且我管理自己使其有時在linux中工作(在Windows中,我不「T記得有這個問題),奇怪的事情是這樣發生的: 如果我有像 for(int i = 1; i >= 0; i--) asm("push %0"::"m"(someArray[i])); 它的工作原理。 如果我有 for(int i = this->s

    7熱度

    6回答

    背景:我的任務是編寫Unitech HT630的數據收集程序,該程序運行專有的DOS操作系統,可以運行爲16位MS DOS編譯的可執行文件,儘管存在一些限制。我正在使用Digital Mars C/C++編譯器,它似乎工作得很好。 對於一些我可以使用標準C庫的東西,但是其他的東西比如繪製在單元的屏幕上需要彙編代碼。設備文檔中給出的程序集示例與在C/C++中使用內聯彙編代碼的教程不同。作爲參考,以下

    2熱度

    2回答

    我將簡短介紹一下。在Visual Studio中創建64位代碼時,_asm塊已被完全剝離。我的問題是,在哪裏可以找到一些關於如何在我可以從我的項目調用的代碼中使用程序集的信息。就像一個彙編文件,我認爲它有一些「優化」的功能,我可以直接在我的C++源代碼中調用它。

    2熱度

    3回答

    在我的項目中,我需要使用內聯裝配,但它需要是Nasm,因爲我對GAS不太瞭解。 我嘗試: void DateAndTime() { asm (.l1: mov al,10 ;Get RTC register A out RTCaddress,al in al,RTCdata test al,0x80 ;Is update in progr

    0熱度

    4回答

    我想知道如何使用內聯程序集檢索調用我的函數的函數的地址。我的想法是將地址放到調用我的函數返回的地方,並使用它之前的指令(即調用函數調用我的函數),檢索調用我的函數的地址並添加到給定的偏移量調用下一條指令的地址(調用我的函數返回的地址)。到目前爲止,我能夠做到這一點,但得到我的地址。這是相當簡單的,它的工作原理: _asm { mov eax, [ebp+4] mov retu

    1熱度

    4回答

    我不知道程序集,所以我不知道如何去做這件事。 我有一個掛鉤到另一個程序。我已經獲得的偏移量,其中功能位於鉤程序的.exe #define FuncToCall 0x00447E5D 所以現在我怎麼能使用__asm {}內調用該函數?

    2熱度

    2回答

    任何人都可以證明我的正確的AT & T語法做下面我做在INTEL 什麼我在AT &牛逼顯示我的嘗試,但他們並不編譯... unsigned int CheckIfGenuineIntel(void) { unsigned int VendorIdentificationString[4] = {0, 0, 0, 0}; #if defined(_DO_INTEL_) __