ia-32

    3熱度

    1回答

    我想知道英特爾IA-32架構的基本數據類型是什麼。我知道其中四個字節(8位),字(16位),雙字(32位)和四字(64位)。還有其他人嗎?

    1熱度

    1回答

    我想知道每個數據塊在堆棧中使用的大小(以字節爲單位)。特權級別如何影響答案?

    11熱度

    2回答

    考慮以下濃縮代碼: /* Compile: gcc -pthread -m32 -ansi x.c */ #include <stdio.h> #include <inttypes.h> #include <pthread.h> static volatile uint64_t v = 0; void *func (void *x) { __sync_add_and_fet

    3熱度

    2回答

    #include <stdio.h> int main(int argc, char * argv[]) { argv[1][2] = 'A'; return 0; } 以下是來自GCC的32位Intel體系結構的相應彙編代碼。我無法完全理解正在發生的事情。 main: leal 4(%esp), %ecx - Add 4 to esp and store the add

    1熱度

    1回答

    我發現下面的彙編代碼,我不知道它是什麼應該做的事情(主要是因爲cmovg遵循MOVL指令): pushl %ebp movl %esp, %ebp movl 8(%ebp), %edx movl %edx, %eax sarl $31, %eax testl %edx, %edx movl $1, %edx cmovg %edx, %eax popl %ebp ret 因此,

    0熱度

    1回答

    我編寫了IA32的以下彙編腳本。它應該從stdin中讀取一個數字,將其增加並將其輸出到stdout,但它不像預期的那樣工作,它不會打印任何東西(也許stdin的讀取不會終止,或者打印出來的東西是錯誤的?) .section .text .globl _start _start: movl $3, %eax # use syscall 3 (read) to read fr

    0熱度

    1回答

    我正試圖在Mac OS X Montain Lion上遵循專業彙編語言。 在谷歌,我發現了Mac OS X的一個端口在以下網址:Assembly on MacOS X 創建用Vim文件並用氣相編譯它: 爲-g -arch i386的-o cpuid.o cpuid.s 鏈接的代碼使用gcc: gcc -m32 -arch i386 -o cpuid cpuid.o 生成的可執行文件cpuid,運行

    1熱度

    1回答

    我正在嘗試使用IA 32的彙編代碼讀取命令行參數。我找到了解釋如何在這裏執行它。我能夠使用堆棧指針來獲取參數的數量,但我無法獲得參數的值。 這是我正在做的事: movl 8(%esp), %edx # Move pointer to argument 1 to edx movl (%edx), %ebx # Move value of edx to ebx movl $1, %eax # o

    0熱度

    1回答

    我有以下部件組合的: recursive: pushl %ebp movl %esp, %ebp subl $40, %esp cmpl $0, 8(%ebp) jne .L6 movl $0, %eax jmp .L7 .L6: movl 8(%ebp), %eax movl (%eax), %eax movl %eax, -12(%ebp) movl 8(%ebp),

    2熱度

    2回答

    我有一個關於相對跳躍以下問題: 我明白JMP SHORT <displacement>會跳轉到<displacement>字節相對當前PC。那是對的嗎? 這是真的,彙編程序會自動生成一個相對跳轉的操作碼?即當我只寫JMP <label>時,如果該標籤位於當前PC的128個字節之內,它會產生一個相對跳轉? 如果我想使用JMP SHORT <displacement>,計算位移的正確方法是什麼?通過檢