在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

匯編學習入門之第一個匯編程序

jf_78858299 ? 來源:硬件底褲 ? 作者:酸奶蓋子 ? 2023-02-14 15:10 ? 次閱讀

經過理論鋪墊,現在正式進入語言實際操作和效果展示,該篇文章主要是介紹常用命令與命令的慣常用法;編寫、編譯一般的匯編程序;閱讀機器碼。

  • 注意:本文匯編程序是X86環境下的,移植其他平臺可能產生錯誤。*

一、常用的命令

匯編代碼主要由助記符和操作數組成,格式通常如下

例:

MOV AX,0x10

上述例子只是一個簡單的舉例,事實上,mov指令還有能在多種用法,如下圖所示。

圖片

將上述上圖抽象出來便有以下關系:

MOV 目的,源

既:

MOV reg/mem,reg/mem/Imm

其中:

reg 寄存器

mem 內存

imm立即數

又可以在名稱后面跟數字表示位數,如imm32 就是可以操作32位數據。

必須明確,源操作數位數必須與目的操作數位數相同。

注:學習更多指令語法參考文末百度云書籍。

對機器而言這種編碼組織形式是高效的,作為人類這種高效無疑增加了復雜性。

現代不是計算機剛問世的時期,現代工程師要追求最優解。

經過工程師迭代,在匯編語言基礎上開發出來的編譯器普遍具有偽指令、標號等功能以便源文件具有較高可讀性。

例:

Start:;標號聲明該段代碼代號,標號不會參與編譯過程

MOV AX,0x10       ;0x10復制給AX寄存器

   MOV CX,0x00       ;0x00復制給CX寄存器

  ADD AX,CX           ;AX寄存器值加上CX寄存器值

將上述程序存放起來,命名為10_01.asm,.asm為匯編源文件,使用NASM編譯。

編譯命令:nasm -f bin .\\10_01.asm -o .\\10_01.bin

其中:

nasm 執行程序

10_01.asm 源文件

-f bin 指定輸出文件格式為.bin

注:更多指令語法參考文末百度云書籍。

編譯后將.bin文件打開得到如下圖數據:

圖片

為研究方便,再對輸出文件進行反匯編。

將.bin文件在0x7c00處反編譯

使用命令:ndisasm -o 0x7c00 .\\10_01.bin >> .\\10_01-1.asm

得到:

00007C00B81000 mov ax,0x10

00007C03B90000 mov cx,0x0

00007C06 01C8 add ax,cx

現在所有東西都一目了然,在.bin文件中:

B8為mov AX指令所對應的機器碼,因為AX寬16位,而0x10為8位所以補兩個0湊夠16位,X86立即數先低位后高位存放0010在內存中便是1000;B9同理。

01為add指令機器碼,C8代表AX,CX兩個寄存器值相加。

  • 二、Helloworld

現在了解了簡單的匯編語言,我們必須要查看一下效果。

為此,helloworld雖遲但到!

1、建立helloworld.asm

圖片

2、輸入以下指令

org 07c00h ;程序起始位07c00h

mov ax,cs

    mov ds,ax

    mov es,ax

    call DispStr    

    jmp $     ;死循環

DispStr:;字符串調用函數

mov ax,BootMessage

    mov bp,ax               ;串地址

    mov cx,11               ;串長度

    mov ax,01301h      ;AH = 13,AL = 01h

    mov bx,000ah  ;黑底綠字

    mov dl,0

    int 10h      ;10h號中斷

    ret

    BootMessage:db "Helloworld!"

    times 510 - ($-$$)db  0

;生成一串512字節二進制代碼

dw 0xaa55  ;結束標志

3、編譯

nasm -f bin .\\helloworld.asm -o .\\helloworld.bin

4、效果

圖片

上述源碼看客們可以先行閱讀,下一篇推文對源碼進行解析。

參考文獻:

[1]Nasm.[EB/OL]. http://www.bytekits.com/nasm/intro.html.

[2] 蹦蹦騎士.[EB/OL].https://www.cnblogs.com/alwaysking/p/7623781.html#:~:text=%E7%BC%96%E

[3] 萬一.[EB/OL]. https://www.cnblogs.com/del/archive/2010/03/16/1687665.html.-.

[4]INTEl.[EB/OL]. https://css.csail.mit.edu/6.858/2015/readings/i386.pdf.-.

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 匯編程序
    +關注

    關注

    0

    文章

    58

    瀏覽量

    16215
  • 編譯
    +關注

    關注

    0

    文章

    662

    瀏覽量

    33067
  • 匯編代碼
    +關注

    關注

    0

    文章

    24

    瀏覽量

    7567
收藏 人收藏

    評論

    相關推薦

    匯編程序和反匯編程序簡要設計

    匯編程序和反匯編程序,可以由機器語言得到匯編語言 不是所有都會默認從0000H開始,保險起見,還是要在開頭用ORG 0000H,然后加條跳轉指令到
    發表于 12-01 06:34

    51 系列匯編程序設計的優化1

    51 系列匯編程序設計的優化1
    發表于 05-15 14:55 ?24次下載

    匯編程序編寫

     匯編程序編寫 匯編程序舉例􀂊GISR5: ;優先級INT5中斷人口􀂊CLRC INTM ;開總中斷(因為進中斷就自動關閉總中斷)&
    發表于 03-30 15:55 ?31次下載

    PCF8563匯編程序

    剛寫的PCF8563匯編程序,請教高手!!!;***************************************************************;PCF8563時鐘
    發表于 08-19 17:41 ?90次下載

    EMC系列單片機反匯編程序

    本文提供的EMC系列單片機反匯編程序,希望對你學習有所幫助!
    發表于 06-03 15:32 ?34次下載

    匯編程序100例

    匯編程序100例,方便初學者快速的入門,加快掌握匯編語言。
    發表于 11-17 15:22 ?96次下載

    AD和DA轉換的c程序和對應的匯編程序

    有關AD和DA轉換的c程序和對應的匯編程序
    發表于 11-19 16:43 ?27次下載

    51單片機匯編程序

    51單片機匯編程序包。
    發表于 01-06 14:12 ?16次下載

    DSP匯編程序優化方法的探討

    DSP匯編程序優化方法的探討
    發表于 10-20 10:41 ?5次下載
    DSP<b class='flag-5'>匯編程序</b>優化方法的探討

    lcd1602匯編程序,LCD1602匯編顯示程序代碼

    匯編語言書寫的程序翻譯成與等價的機器語言程序的翻譯程序匯編程序輸入的是用
    發表于 10-20 15:34 ?1.5w次閱讀
    lcd1602<b class='flag-5'>匯編程序</b>,LCD1602<b class='flag-5'>匯編</b>顯示<b class='flag-5'>程序</b>代碼

    單片機入門匯編程序太陽跟隨系統的程序資料免費下載

    本文檔的主要內容詳細介紹的是單片機入門匯編程序太陽跟隨系統的程序資料免費下載。
    發表于 02-20 17:58 ?7次下載
    單片機<b class='flag-5'>入門</b><b class='flag-5'>匯編程序</b><b class='flag-5'>之</b>太陽跟隨系統的<b class='flag-5'>程序</b>資料免費下載

    匯編程序設計的教程課件免費下載

    本文檔的主要內容詳細介紹的是匯編程序設計的教程課件免費下載包括了:匯編語言與匯編器,匯編語言程序規范,偽指令及應用,宏指令及應用,
    發表于 03-16 17:08 ?17次下載
    <b class='flag-5'>匯編程序</b>設計的教程課件免費下載

    微機的匯編語言及匯編程序設計學習課件免費下載

    本文檔的主要內容詳細介紹的是微機的匯編語言及匯編程序設計學習課件免費下載包括了:1 概述,2 偽指令,3 表達式及運算符,4 宏指令,5 匯編語言
    發表于 11-02 08:00 ?6次下載
    微機的<b class='flag-5'>匯編</b>語言及<b class='flag-5'>匯編程序</b>設計<b class='flag-5'>學習</b>課件免費下載

    單片機入門匯編程序--直流電機的控制

    單片機入門匯編程序--直流電機的控制(安徽理士電源技術有限公司招聘)-該文檔為單片機入門匯編程序--直流電機的控制總結文檔,是份不錯的參考
    發表于 09-22 14:33 ?11次下載
    單片機<b class='flag-5'>入門</b><b class='flag-5'>匯編程序</b>--直流電機的控制

    單片機入門匯編程序--直流電機的單片機控制

    單片機入門匯編程序--直流電機的單片機控制(15kvaups電源技術協議)-該文檔為單片機入門匯編程序--直流電機的單片機控制總結文檔,是
    發表于 09-22 14:37 ?38次下載
    單片機<b class='flag-5'>入門</b><b class='flag-5'>匯編程序</b>--直流電機的單片機控制
    主站蜘蛛池模板: 色婷婷国产 | 资源种子在线观看 | 久久成人精品免费播放 | 国产成人啪精品午夜在线播放 | bt种子搜索在线 | 日本在线视频一区 | 天天天综合 | 欧美另类69xxxxxhd | 二级特黄绝大片免费视频大片 | 欧美黑人性受xxxx喷水 | 久久综合久色欧美婷婷 | 天天色天天色天天色 | 一级特级毛片免费 | 黄色日批网站 | 四虎国产视频 | 久久精品夜夜夜夜夜久久 | 六月婷婷久久 | 午夜在线观看完整高清免费 | 看毛片网站| 在线观看黄色一级片 | 国内自拍 亚洲系列 欧美系列 | 激情五月亚洲色图 | 日韩久久精品视频 | 亚洲欧美在线一区 | 日本亚洲成人 | 扒开末成年粉嫩的流白浆视频 | va在线观看 | 日本免费一区二区三区视频 | 婷婷六月久久综合丁香一二 | 欧美在线小视频 | 国内在线观看精品免费视频 | 嫩草网 | 香蕉久久高清国产精品免费 | 五月天婷婷影院 | 亚洲一区二区免费视频 | 国产一级特黄aa大片爽爽 | 综合欧美一区二区三区 | 久久影院朴妮唛 | 嗯好舒服好爽好快好大 | 免费永久欧美性色xo影院 | 久草免费色站 |