nasm

    3熱度

    3回答

    我想使用特定值初始化程序集中的數組。我試着先在循環中做它,但在數組中得到垃圾。然後我嘗試手動做,並得到同樣的垃圾。我希望數組重複n 1 2次n次。以下是我嘗試的一些示例代碼。 這是我嘗試手動加載數組。第一個值加載得很好。然而,當我在GDB中檢查它時,第二個值會加載垃圾。 sub esp, 260 mov [ebp - 12], dword -1 mov [ebp - 16], byte 0

    2熱度

    1回答

    NASM返回如下錯誤:「在64位模式下不支持指令」,我無法弄清楚該怎麼做。主題指令是彈出和推送命令。我可以使用什麼來代替它們,或者有其他方法可以解決此問題嗎? 最好的問候......(我使用64位系統 - 英特爾酷睿i7處理器)

    1熱度

    1回答

    我試圖製作一個彙編程序,它帶一個數字,然後打印出來。但是當我寫1時,它寫了4171.爲什麼,我該如何解決它?我使用的是64位程序集,我用nasm -f macho64 scanf.asm組裝了它,並且我將它與gcc -o scanf scanf.o -Wl,-no-pie聯繫起來。我試圖在掃描宏的數字周圍使用方括號(用於指向可變數字的指針),但是nasm mach-o不允許它,所以我沒有這樣做。

    0熱度

    1回答

    這是一個簡單的問題,但它讓我頭暈目眩。我需要將一串字符(輸入爲負十進制數)轉換爲無符號整數。 rdi寄存器保存要轉換的字符串。 rax寄存器將保存結果。 xor rsi, rsi xor rax, rax xor dl, dl xor rdx, rdx convert: mov dl, [rdi+rsi] ;+rsi causes segmentation

    1熱度

    2回答

    因此,在引入一些裝配以獲得樂趣之後,我現在停留在調用過程中。 ... _start: push dword len push dword msg call print mov eax, SYS_EXIT mov ebx, 0 int 80h print: ; *char (message), int (len) -> push

    0熱度

    1回答

    我想在NASM彙編程序中使用strstr C函數,但似乎無法使其正確打印出來。我嘗試了多種變化,但我想我可能會誤解NASM如何從C返回指針值,因爲我在printf或'(null)'中返回空行。爲什麼我無法獲得正確的印刷回報值?有些人可以幫我填補嗎? section .data str1 db "Here is some text with a word",0x0A,0x00

    -4熱度

    1回答

    它是管理聯繫人的代碼。即添加,刪除,搜索,列表,編輯。 我想下面的c代碼的asm代碼。我的代碼在c中的net beans上運行。所以我需要的彙編語言代碼爲我的程序 #include<stdio.h> #include<conio.h> #include<string.h> #include<process.h> #include<stdlib.h> #include<dos.h

    0熱度

    2回答

    可以爲程序集中的字符串賦一個int值嗎? 例如,我把>>老鼠= 2,當我調用使用的變量,如果我把>>鼠+ 2方案,它必須返回4. 而且,如果可能的話,這是做到這一點的最佳方式? 任何幫助將不勝感激。

    0熱度

    2回答

    我正在嘗試做一個非常簡單的彙編程序運行,但是我似乎無論我做什麼都會出現段錯誤。 這裏是我的代碼(應打印「A」在Linux機器上) section .data buffer times 50 db 97 pointer db 0 section .text global _start _start: mov ECX , pointer m

    1熱度

    1回答

    遞增64位內存有效地址我使用的中斷0x13與擴展驅動器0x42的功能讀取從我的擴展驅動器部門在實模式。 我定義DAP是在下面的結構的16個字節: DAP: db 0x10 ; size of DAP db 0 ; Reserved zero dw 0x0001 ; Number of sectors to read dd 0x00000200 ; M