att

    1熱度

    1回答

    注:我使用的是基於BSD的系統,所以如果我沒記錯的話,這意味着對於調用的子程序ARGS /功能推到不放在寄存器堆棧 我一直在嘗試組裝,我想嘗試我的簡單內核退出程序: .globl _start _start: movl $0x20, %eax pushl %eax movl $0x1, %eax subl $0x4, %esp int $0x8

    2熱度

    2回答

    當我讀了一些反彙編代碼,因爲我不起來AT & T語法,我不知道什麼樣的一些代碼(%ESP,1)表示。 11 printf("%x", a); 0x401386 <main+182>: movl $0x1,0x4(%esp,1) 0x40138e <main+190>: movl $0x40300d,(%esp,1) 0x401395 <main+197>: call 0x401810

    2熱度

    2回答

    我現在正在gdb上運行一些代碼,我不知道這兩條指令實際上做了什麼。如果有人能幫助我,我會很感激。 add -0x2c(%ebp, %ebx, 4), %eax cmp %eax, -0x28(%ebp, %ebx, 4)

    5熱度

    2回答

    我目前正在對AT & T彙編的轉讓,現在我不得不追加兩個字符串: message: .asciz "String 1" before: .asciz "String 2" 我真的有不知道如何做到這一點還是如何開始。我已經在網上搜索過,但找不到任何有用的信息。我想我必須手動將第二個字符串的字符複製到第一個字符串的末尾,但我不確定這一點。 任何人都可以請向我解釋如何做到這一點? :)

    2熱度

    1回答

    我目前正在忙於在彙編(AT & T)中做一個小的(有迄今固定的問題)測驗。 我設計了一個小菜單,要求輸入1 2或3的某個輸入 問題是我的cmpl沒有完成它的工作,我無法弄清楚爲什麼。 它只是退出,不管輸入是什麼。 下面是我的一些代碼: .text menu: .asciz "Please select an option: 1 - Start the quiz! 2 - Highscores

    0熱度

    1回答

    我試圖在裝配中連接兩個字符串,但我似乎無法得到它的工作。我有以下的代碼: .data message: .asciz "message" leading: .asciz "leading" .globl main main: push $message push $leading call strcat push %eax ca

    3熱度

    1回答

    在我努力理解如何使用GNU binutils構建一個簡單的引導裝載程序時使用了 gas我遇到過這個問題,你如何告訴鏈接器將數據放在哪裏,放在一個使用.org的文件中,以將文件大小保持在512字節的同時前進位置計數器。我似乎無法找到辦法做到這一點。 ,試圖做到這一點的彙編程序是: # Author: Matthew Hoggan # Date Created: Tuesday, Mar 6, 20

    15熱度

    1回答

    我寫了這個簡單的內核模塊: #include <linux/module.h> // for printk() int init(void) { printk("n Kello, everybody! nn"); return 0; } void exit(void) { printk("n Goodbye now... nn"); } MOD

    3熱度

    2回答

    我一直在爲i386實模式編寫一些「獨立」代碼,並遇到了一些奇怪的錯誤,而PXE網絡啓動我的代碼: PXE-E79: NBP is too big to fit in free base memory PXE-M0F: Exiting Intel Boot Agent. 後與我的二進制多擺弄我分離它作爲 .data 段標記後具有任何的數據或代碼。 經過hexdumping之後,我發現ld將

    3熱度

    2回答

    我只是想到了這一點,而不是將我的新問題(「爲什麼?」)分解成另一個問題,我認爲最好的解決方案是將問題和解釋保存在同一頁面上。 我正在編寫一個基本的彙編程序來立即啓動並立即退出使用內核中斷int 0x80。我當前的代碼很簡單如下: /* Simple exit via kern-interrupt */ .globl start start: pushl $0x0 mov