久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

第6章 動手操作-DEBUG的使用2(X86匯編教程)

作者:51hei   來源:本站原創   點擊數:  更新時間:2013年12月23日   【字體:

本教程目錄 http://m.zg4o1577.cn/mcu/2619.html

      本章將真正開始教你一些匯編指令,也許你早就期待著了.好,首先說匯編指令的格式(看不懂的話不要糾結在這里,繼續看,后邊會進行講解!):
[代碼標號][:]<指令名>[空格][操作數1][,][操作數2]
        打了尖括號的是每行匯編代碼都必須有的,打方括號的是看情況決定有沒有的,詳解:

 
標號(這個暫時不用理解,先大概看看,以后講到了再理解.):
        之前說過,匯編代碼是在內存中的,所以,每行代碼都會在內存中占用一定字節,當然,也就有了個地址.有的時候我們可能會需要用到某行代碼的地址,代碼將會被放到內存的什么地方,一般在代碼編譯出來就會計算好.所以在代碼中可以直接輸入那行代碼在內存中的地址.但是呢.假如修改了代碼,那內存地址不就變了嗎? 所以人們想了這么個辦法:用一句文本代替數字地址,等編譯器編譯的時候計算出那行文本所代表的代碼的地址再自動填寫進引用到那句文本的地方.
 
":":
        這個是跟在標號后邊的,把標號和指令名區分開來(就算特殊情況標號后邊沒有任何東西也必須加":").
指令名:
        匯編代碼的指令,CPU根據指令知道要做什么事.
 
空格:
        把指令和操作數區分開來.
 
",":
        把2個操作數區分開來
 
操作數:
        執行指令所需要的數據,比如我們在數學中要進行除法運算,需要被除數和除數這2個"操作數",在匯編里,匯編指令也需要相應的操作數才能進行計算,需要多少個操作數由指令決定,有些指令不需要操作數,有些需要1個,有些需要2個)
 

 
第一個指令
        相信你已經從前邊的內容中學會了匯編的語法格式.現在將教你1個指令,并教你在Debug中輸入它進行測試.指令資料:

 

指令名                           :MOV 
操作數數量                    :2
操作數用途                    :目標操作數,源操作數
指令用途                        :把一個數據從源操作數復制到目標操作數

        我希望你能寫一個筆記,把將來教的各種指令記錄下來.這對學習有好處,指令手冊什么的,只有手冊作者的理解,無法寫入你自己的理解.人家寫的你不一定看的懂.

        好了,接下來,在Debug里面試一下這個指令吧.打開DeBug,用A指令進入[匯編代碼編輯模式](不要急著輸入代碼,先看講解!!!)

 

 
匯編代碼編輯模式講解
 
        根據上圖,你會看到右邊顯示一個內存地址,你輸入的代碼將被轉換成機器碼放到這個地址.旁邊有一個光標,這就是你輸入匯編代碼的地方了.在這里輸入代碼,按下回車,就會直接將該行代碼轉換成機器碼,并計算出長度.如果輸入的代碼有錯誤,DeBug會在錯誤處下面顯示:"Error"

        DeBug并不是匯編編譯器,所以對匯編代碼是有限支持,標號是不給用的,只支持十六進制,至于二進制和十進制,反正我是沒在這里用到過.
 

好了,來試試MOV指令吧,用MOV往寄存器AX里寫入數據1234H.

        把1234H寫入AX,那么1234H就是"源操作數"了,AX就是"目標操作數"了,代碼這么寫(注意指令名和第一個操作數之間的空格,不要漏了!):

MOV AX,1234

輸入指令后回車,你會看到DeBug還在代碼編輯模式.在么退出代碼編輯模式呢?直接空代碼回車即可:


 

代碼編輯成功,如何執行剛才輸入的代碼呢?不急,先看看寄存器內容吧,R指令:


 


 

首先看,AX寄存器.內容是0000,接著看內容的最下方.之前看不懂的一行.現在已經基本能看懂了.這里顯示的是即將執行的代碼(地址為:CS段寄存器:IP偏移寄存器)格式如下:

內存地址(段:偏移) 機器碼(數字代碼) 反匯編(匯編代碼轉機器碼了,機器碼轉回匯編代碼叫反匯編)

        由上可見MOV AX,1234的機器碼是B8 34 12(這個34 12就是第2個操作數了,至于為啥會反過來,這是高位低位排序原因,請自行翻閱之前的章節)好了,來執行代碼看看吧(終于執行代碼了TAT),在 DeBug中,用T指令可以執行一行代碼.執行看看:

T   回車

好了執行完畢.看看AX寄存器的內容:


 

         成功了,我們用匯編指令把一個數字寫入到了AX寄存器里.

這一章就講到這里,給個小作業,試試看把1234H寫入BX寄存器,然后把BX寄存器的內容復制到AX寄存器,成功后把代碼回復上來~

 

關閉窗口

相關文章

主站蜘蛛池模板: 亚洲成人综合在线 | 国产精品免费一区二区三区四区 | 成人高清在线 | 欧美性猛片aaaaaaa做受 | 亚欧午夜| 99小视频| 久久99精品国产自在现线小黄鸭 | 神马九九 | v亚洲 | 日本精品一区二区三区在线观看 | 国产精品永久 | 在线播放国产一区二区三区 | 国产a一区二区 | 日韩一级二级片 | 国产精品久久一区二区三区 | 成人天堂噜噜噜 | 成人av网站在线观看 | 亚洲一区| 9久久婷婷国产综合精品性色 | 精品福利一区二区三区 | 日韩毛片免费看 | www.黄网 | 九九99靖品 | 国产精品99久久久精品免费观看 | 久久久久午夜 | 久久99国产精品 | 日本三级全黄三级a | 美女视频h | 天天操夜夜操 | 亚洲午夜精品视频 | 免费观看一级特黄欧美大片 | 狠狠爱免费视频 | 91精品国产乱码久久久久久久久 | h视频免费在线观看 | 欧美一区二区三区在线观看视频 | 成人免费视频观看视频 | 久久精品视频12 | 欧美日韩在线精品 | 国产成人精品高清久久 | 国产美女在线精品免费 | 99视频在线|