x86

    0熱度

    3回答

    簡單的裝配程序可以吐出兩個用戶輸入數字中較大的一個。我無法正確輸出輸出。例如,如果我輸入45和55,最大值將是55,但是當我嘗試反向55和45(答案應該仍然是55)時,我得到45.這看起來似乎只能輸出第二個輸入值存儲在EAX。任何幫助是極大的讚賞。 .586 .MODEL FLAT INCLUDE io.h .STACK 4096 .DATA value1 DWORD ? val

    -3熱度

    1回答

    我在Assembly中得到了這個代碼,它基本上在遊戲中打印了一條灰色的消息。 下面的代碼: 我的問題是哪一行代碼定義了灰色?

    0熱度

    1回答

    我想86教我,我已經在整個運行需要返回立即,負數: .text .align 4,0x90 .globl _scheme_entry _scheme_entry: movl $-42, %eax ret 當我打印這個功能(printf("%" PRIdPTR "\n", scheme_entry())的返回值,我得到一個廢話號: $ ./neg 429496

    5熱度

    1回答

    我想從一個由8個整數組成的另一個__mm256i offset指定的8個位置從一個寄存器變量__mm256i src中提取8個比特。 例如:如果offset是[1,3,5,21,100,200,201,202],我想從src獲得第1,3,5,10,100,121,202位,並將它們打包到int8。 這個問題類似於Extracting bits using bit manipulation,但我想用

    0熱度

    1回答

    如果堆棧向下增長,並且EBP指向堆棧的底部,那我爲什麼會看到這樣的操作,如mov eax [ebp + 4]。這不會引用當前棧幀之外的變量嗎?

    1熱度

    1回答

    最近,我已經開始通過YouTube頻道學習大會,並有一些問題有關聲明中部分的標籤。數據 當我們寫下如下所示的內容:test db「hello world」,是標記「測試」,類似於程序語言中的指針嗎?(這意味着它保存文本「hello world」中第一個元素的內存地址) 當我們寫:mov rsi test,是否意味着我們把「hello world」的地址放入rsi寄存器中? 另一個問題是關於[]的用

    -6熱度

    2回答

    用匯編語言中的選擇排序對十個數字列表進行排序。 如何轉換我這個冒泡排序方法爲選擇排序方法 `[org 0x0100] jmp start data: dw 60, 55, 45, 50, 40, 35, 25, 30, 10, 0 swap: db 0 start: mov bx, 0 ; initialize array index to zero mov byte [swap], 0

    0熱度

    1回答

    有什麼影響?內核是用靜態庫編譯還是內在實現? 此外,根據this,內核代碼不能使用任何浮點操作。這是爲什麼?

    1熱度

    1回答

    這裏是我的代碼: section .data digit db 0,10 section .text global _start _start: call _printRAXDigit mov rax, 60 mov rdx, 0 syscall _printRAXDigit: add rax, 48

    0熱度

    2回答

    所以,我有一個彙編函數,它在C中調用。它編譯並且沒有給出警告,但是當我嘗試運行它時,它給了我一個分段錯誤。我認爲這是因爲我不能將一個常量移動到一個寄存器中,但是使用mul/div命令它需要一個值在EAX寄存器中。 我如何在Assembly中乘兩個常量? 下面的代碼到目前爲止... .section .data .global n .equ A, 50 .equ B, 5 .section