assembly

    0熱度

    1回答

    所以,最近我一直在服用裝配類,其中一人給了我一個任務。我編碼了除最後一部分以外的所有內容...我只需要在給定數組中添加數字並打印總和...容易吧? 沒有,我當我運行它說,該行12超出範圍出於某種原因有一個錯誤=/ 所以,這裏是我的代碼: .data array: .word 1,2 size: .word 2 la $s0, array lw $s1, size li $t9, 0

    3熱度

    1回答

    我正在使用Intel x64程序集NASM編譯器,試圖將「0x4000000000000000」常量移動到內存中,ieee 754標準中的double值應該等於2.0。 我正在使用的代碼是: %define two 0x4000000000000000 section .text foo: push rbp mov rbp, rsp mov QWORD [rdi], two

    -1熱度

    1回答

    我想用下面的代碼鉤住鍵盤ISR,但我不能,因爲DeviceIoControl API返回ERROR_INVALID_FUNCTION。這裏是我的代碼: invoke DefineDosDevice,[raw],filename1,devicename lea rcx,[filename2] invoke CreateFileA,rcx,GENERIC_WRITE,0,0,OP

    1熱度

    1回答

    我正在編寫一個程序來確定一個整數是偶數還是奇數。該程序首先要求用戶輸入一個整數,並根據該整數是什麼來打印「偶數」和「奇數」。我無法創建If-else語句。 該語句應該是,如果$ t2 = $ t0,則輸出「Odd」,否則輸出「Even」。這是我現在已經不工作的代碼($ T1 = 1,$ T2 =用戶與1整數AND'd,odd_str = 「奇」,even_str = 「連」): bne $t2,

    1熱度

    1回答

    我編譯: " int x_add(int a, int b) { return a+b; } " ,並得到 " push ebp mov ebp,esp mov edx,[ebp+08] mov eax,[ebp+0c] pop ebp ret " 我簡化了組裝到 " mov eax,[esp+0c] add eax,[esp+08] ret "

    2熱度

    1回答

    經過大約100億次測試後,如果imm64比AMD64的m64快0.1納秒,m64似乎更快,但我不太明白。以下代碼中的val_ptr的地址不是本身的立即值嗎? # Text section .section __TEXT,__text,regular,pure_instructions # 64-bit code .code64 # Intel syntax .intel_syntax n

    -1熱度

    1回答

    我想從用戶輸入的數字倒數,並希望顯示數字和0之間的所有整數。我的輸出我相信去然後它在1處進入無限循環。它似乎永遠不會變爲零。 我剛開始學習大會,所以如果這是一個糟糕的問題,我會提前道歉。 感謝 這裏是我的代碼: .globl main .data msg: .asciiz "Input a number: " x: .word 1 .text main:

    -5熱度

    1回答

    考慮你有一個帶有AND,OR,XOR,NOT和2個寄存器的處理器X & Y. 什麼是交換2個寄存器值的最聰明的方法?

    0熱度

    1回答

    我試圖爲PIC16F設備 clrf BIT bsf REGISTER,BIT 這給編譯錯誤做到這一點。 但是,這樣做 clrf BIT movf BIT,W bsf REGISTER,W 沒有給出編譯錯誤。 我做得對嗎,還是有一個聰明的方法來完成它?

    0熱度

    1回答

    我必須編寫一個程序,將寄存器X,Y和Z初始化爲零,然後循環10次,每次將1加到寄存器X.如果寄存器X是偶數,則將寄存器Y加1,如果寄存器X可以被3整除,則添加一個寄存器Z. 我寫了一些代碼,但我不確定它是否正確,我會很感激任何反饋。 R0, #0 R1, #0 R2, #0 Loop: R3, #0 CMP R0, #10 BEQ endif