inline-assembly

    0熱度

    1回答

    下面的代碼編譯成沒有問題的可執行文件: static const char *foo = "bar"; void main(void) { __asm__ ("mov %0,%%rax" : : "i"(&foo) : "%rax"); } 但作爲一個共享庫,我得到一個錯誤: static const char *foo = "bar

    -4熱度

    1回答

    這裏是在16位的C++編譯器的代碼。 //restore interrupt void CAzimuth::restoreISR() { __asm{ cli mov ax,205h mov bl,0fh mov cx,seg OldInt mov dx,offset OldInt int 31h s

    2熱度

    1回答

    我正在通過Micheal Abrash的圖形編程黑皮書(順便說一句,我非常喜歡,我強烈推薦它),所以我正在使用的示例代碼非常古老。不過,我看不出有什麼問題: __asm__( //Some setup code here "movl %%esi, %%edi;" "movw %%ds, %%es;" //A whole bunch more assembly

    1熱度

    1回答

    Hardware: Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/RELEASE_X86_64 x86_64 atomics.hpp 1 #ifndef ATOMIC_UTILS_H 2 #define ATOMIC_UTILS_H

    -2熱度

    3回答

    作爲我操作系統的一部分,我編寫了這個讀取扇區函數。 它需要一個扇區地址從BIOS設備ID讀取。但是當我設置從扇區19(頭:0,軌道:1,扇區2)讀取時,0x1000:0x0000的結果很可能超過了扇區(我用十六進制查看器多次檢查過)。另外,當我讀取多於一個扇區時,因此扇區19被包含在上述地址中,我可以讀取在0x1000:(512 * 19)處複製的扇區19,沒有問題。 void __NOINLIN

    1熱度

    2回答

    我使用VS2013以下編譯器選項: /高華(啓用_penter鉤子函數) http://msdn.microsoft.com/en-us/library/c63a9b7h.aspx /GH(啓用_pexit鉤子函數) http://msdn.microsoft.com/en-us/library/xc11y76y.aspx 正如我試圖爲我的代碼實現一些基本的分析。然而,隨着64位編譯它不可能使用裸

    0熱度

    1回答

    我嘗試在C代碼中爲MIC(Intel Xeon Phi)製作inline asm。我的指令jknzd有問題。 這是我的代碼片段: float *A = (float*)_mm_malloc(N * sizeof(float), 64); int32_t* Indx = (int32_t*)_mm_malloc(N * sizeof(int32_t), 64); __m512i

    0熱度

    1回答

    是否可以在Swift中編寫程序集?我對此很好奇。像這樣的:__asm__這可能像C. 這樣的語言而我在Swift中無法找到任何關於此的信息。

    0熱度

    2回答

    在GCC內聯彙編中,有兩種方法可以防止優化:__volatile__關鍵字並將"memory"插入到clobber寄存器列表中。 我的問題是與__volatile__和"memory"有什麼區別 - 看起來它們是一樣的......但是,今天我遇到了奇怪的情況,這表明它們是完全不同的! (當我使用"memory"時,我的程序在端口I/O功能上存在一個錯誤,但當我使用__volatile__時,它會變

    0熱度

    1回答

    我試圖將一個項目從Windows移植到Linux。 我承擔了以下回購協議中的代碼:Nspire Emu。 我能夠修復一些編譯錯誤,但很多功能需要重新實現,並且有些部分我無法理解。 frame變量類型定義: typedef struct { void *prev, *function; } os_exception_frame_t; 直列件組裝我不明白: asm ("movl %%fs:(%1)