linux彙編學習(-)之從鍵盤輸入輸出

看了一個多月的彙編始終都是門外漢,連個輸入輸出都很困難,今天終於查閱相關資料實現了得意,也藉此寒假的時間好好學習一下彙編,就用下面這段代碼來開始彙編的學習吧,如果有什麼錯誤,還請各路大大見諒,畢竟本人也是菜鳥一個!大笑

#實現從鍵盤輸入字符串 並輸出
#如果不清楚系統調用函數參數可以使用man 2 function_name 查看
#如 man 2 read
#參數與寄存器對應關係爲從左到右分別爲ebx,ecx,edx,...(注此爲lz自己發現的規律,不一定正確)
#eax 用於指定系統調用的函數代碼
#函數對應的宏代碼定義可以在頭文件/usr/include/asm/unistd.h中看到
.section .bbs                  #定義bbs段
    .lcomm buffer,30
.section .text
.globl _start
_start:
    movl $buffer,%ecx       #下面三條語句將sys_read參數分別傳入到相應寄存器,$加變量名相當於取地址
    movl $30,%edx
    movl $0,%ebx
    movl $3,%eax            #系統調用sys_read函數代碼
    int $0x80               #使用ox80指定執行系統調用中斷代碼

    movl $1,%ebx
    movl $4,%eax            #系統調用sys_write
    int $0x80

    movl $0,%ebx
    movl $1,%eax            #系統調用sys_exit

運行結果如下:

      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章