x86

    1熱度

    2回答

    我想重用我的C項目中一些彙編代碼的函數體。假設我有一個指令序列,我想組織他們作爲一個函數: void foo() { __asm__ ( "mov %eax, %ebx" "push %eax" ... ); } 然而,一個障礙是,在功能foo編譯彙編代碼,除了內聯彙編代碼,編譯器也將產生這個功能有些序幕指令,整個彙編程序將成爲類似: foo:

    -1熱度

    1回答

    在我的彙編程序中,我從kernel32庫中調用AllocConsole,但是我不知道如何從分配的控制檯獲取輸入。 有沒有winapi包含的任何函數會從當前程序的分配控制檯獲取輸入? CALL AllocConsole 的所有功能,如ReadConsole需要輸入緩衝器,我不知道如何讓輸入緩衝區爲我分配的控制檯,更不用說功能是否確實連我需要什麼。 總而言之,winapi中是否有一個函數可以從程序

    0熱度

    1回答

    使用IDA Pro的分析文件,我已經發現一些代碼運行,我不太明白: mov eax, ss:dword_410CC5[ebp] ; call eax; Indirect Call Near Proc 去這個地址 - 410CC5 - 我看到這一點: ile.........Clos eHandle......... 我假設在EAX第一代碼片段庫函數的名稱存儲,然後將其稱爲由 call

    0熱度

    1回答

    我學習組件使用以下的Hello World程序 section .text global _start ;must be declared for linker (ld) _start: ;tells linker entry point mov edx,len ;message length mov ecx,msg ;message to write

    0熱度

    1回答

    EFLAGS寄存器有一個進位標誌和一個溢出標誌,我想知道這些標誌有什麼用處。 我能想到以下用途: 如果我增加兩個無符號整數,我想知道,如果 除了是成功的(也就是裝在指定的寄存器的結果/內存),然後我會檢查進位標誌是否設置爲 (如果沒有設置,則添加成功)。 如果我添加兩個有符號數(2的補數),並且我想要 知道增加是否成功(也就是說,結果符合指定的寄存器/存儲器而沒有溢出符號位),那麼我會檢查是否設置

    3熱度

    1回答

    我幾次看過這個r10古怪,所以讓我們看看是否有人知道發生了什麼。 藉此簡單函數: #define SZ 4 void sink(uint64_t *p); void andpop(const uint64_t* a) { uint64_t result[SZ]; for (unsigned i = 0; i < SZ; i++) { result[i] =

    0熱度

    2回答

    我需要幫助理解下面的代碼。它是用C++編寫的線程工作和上下文切換的例子(BC31編譯器)。 我明白爲什麼PCB存在爲了切換上下文(尤其是保持SS和SP寄存器),並且我也明白它通過使用這個程序可以使 返回到無中斷的地步發生了。關於代碼,我明白了什麼是DISABLE_INTERRUPT和ENABLE_INTERRUPT用於 (忽略代碼中某些敏感部分的中斷)。我也理解createProcess函數,其中

    -1熱度

    2回答

    我使用Visual Studio 2017年 可以說,我命名爲「Factorial.asm」一個彙編文件,我打破它到名爲「one.asm」和「二二.ASM文件.asm「: Factiorial.asm工作得很好。 Factorial.asm包含 .386 .model flat, stdcall option casemap :none includelib \masm32\lib\msv

    0熱度

    1回答

    我在Debian 9.這些都是錯誤: [email protected]:~/Assembly/sandbox$ nasm -f elf -g -F stabs sandbox.asm sandbox.asm:8: error: comma, colon, decorator or end of line expected after operand sandbox.asm:9: error:

    0熱度

    1回答

    我正在做這個項目,用戶將輸入兩個字符串,程序將識別哪個更長。 之後,它將識別最長單詞的第一個,中間和最後一個字母。 我只是設法讓輸入,如果第二個字是時間越長,工作..但是當第一個較長我不能得到中間和最後letter..please幫助..謝謝:) 我的代碼: .data msg db "Enter 1st word: $" msg1 db 13,10,"Enter 2nd word: $"