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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

第7章 NASM的使用教程(X86匯編教程)

作者:51hei   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年12月23日   【字體:

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

        本章將講解匯編編譯器NASM的使用方法.
 
首先,下載NASM: http://m.zg4o1577.cn/f/nasm.rar
        別急著運(yùn)行......也許有人已經(jīng)運(yùn)行了一下,會(huì)發(fā)現(xiàn)一個(gè)黑色的窗口閃爍一下就什么都沒有了.這是正常現(xiàn)象.請(qǐng)不要以為是NASM壞了.
嘛.暫時(shí)先不要?jiǎng)铀?我們先編寫一篇代碼吧.
        首先你要設(shè)定你的系統(tǒng)讓你的系統(tǒng)顯示文件擴(kuò)展名.什么是文件擴(kuò)展名呢?那是文件的一個(gè)附加名字,在文件名后面加一個(gè)點(diǎn),后面就是擴(kuò)展名,一般由1~4個(gè)英文字母組成(其中3個(gè)英文字母的擴(kuò)展名最多).用來表示文件的類型,一般是不顯示出來的.
        如果你已經(jīng)設(shè)定了請(qǐng)?zhí)^這一步.32位XP設(shè)置顯示擴(kuò)展名方法:
 
        首先,打開任意文件夾,在菜單中找到"工具",在彈出的菜單里找到"文件夾選項(xiàng)"

 
 

打開了這個(gè)窗口(見下圖↓)

1:點(diǎn)擊"查看",

2:把[隱藏已知文件的擴(kuò)展名]選項(xiàng)前面的勾去掉.

3:點(diǎn)擊窗口下面的"應(yīng)用"按鈕,

4:再點(diǎn)擊"確定"按鈕. 
 


 

然后再看看你電腦里的文件,文件名都顯示了擴(kuò)展名了,請(qǐng)先熟悉一下擴(kuò)展名吧,以后改文件名的時(shí)候要注意,改錯(cuò)擴(kuò)展名會(huì)導(dǎo)致文件類型丟失(當(dāng)然,記得擴(kuò)展名的話,能改回來)!

        好了,打開記事本新建立一個(gè)文本文件,保存,你會(huì)得到一個(gè)擴(kuò)展名為TXT的文件.把擴(kuò)展名改成ASM吧!


 

        改完了嗎?什么?你說圖標(biāo)和我不同?那是正常現(xiàn)象,請(qǐng)不要在意....
 

好了.ASM文件就是匯編代碼文件用來寫匯編代碼.用記事本就可以編輯它,當(dāng)然,你也可以專門找匯編代碼編輯工具(這就是我改擴(kuò)展名后圖標(biāo)和你不同的原因喲,專門的匯編代碼編輯器有自己的圖標(biāo)!),不過我認(rèn)為新手的話用記事本就足夠了,專門編輯工具會(huì)讓你眼花!

        好了,用記事本打開它,寫入下面的代碼:
 

ORG 0100H;這行代碼之前沒講過,以后會(huì)講!
 

MOV AX,0B800H
 

MOV BX,AX
 

MOV CX,BX
 

MOV DX,CX
 

好了,把代碼保存到文件里.

接著我們來編譯它,再次建立一個(gè)文本文件,還是要改擴(kuò)展名.改為BAT(見下圖↓):

 


 

用記事本按照下面的語法寫入內(nèi)容:

NASM "代碼文件名.擴(kuò)展名 " -o "要生成的文件名.擴(kuò)展名"

注意空格喲!

實(shí)例:

NASM "新建 文本文檔.ASM" -o "1.COM"
 


 

寫完了,保存,把NASM解壓到同一個(gè)文件夾: 


 

雙擊運(yùn)行BAT文件.如果你之前的步驟都沒做錯(cuò)的話,就會(huì)發(fā)現(xiàn)多出一個(gè)COM文件.不要急著運(yùn)行它!這個(gè)就是你的代碼編譯出來的東西!你知道么?DeBug還能調(diào)試編譯出來的程序呢!我們用DeBug調(diào)試它吧,再次建立一個(gè)BAT文件,用記事本按照以下語法寫入內(nèi)容:

DeBug 要調(diào)試的文件名.擴(kuò)展名

注意:文件名前面有一個(gè)空格,文件名本身不能帶空格!

實(shí)例:

DeBug 1.COM


 

        運(yùn)行后就會(huì)出現(xiàn)DeBug窗口,輸入R指令,看看第一行代碼:


 

        你也許已經(jīng)震驚的發(fā)現(xiàn),第一行代碼盡然不是代碼里的第一行:ORG 0100H,而是第二行MOV AX,0B800H

其實(shí)事情的原因是這樣的:

        那個(gè)ORG,其實(shí)不是匯編指令來的那個(gè)是一個(gè)標(biāo)識(shí),告訴編譯器,這篇代碼將來有可能被加載到內(nèi)存的什么地方(請(qǐng)注意DeBug里面的MOV指令的偏移地址,沒錯(cuò),是0100H!) 

        注意:這個(gè)0100H可不是ORG偽指令設(shè)定的!(實(shí)際上CPU根本就沒有,專門給編譯器的指令稱作偽指令)ORG只是告訴NASM,這篇代碼會(huì)被加載到0100H好讓NASM做好準(zhǔn)備而已(這個(gè)以后就會(huì)知道)
 

        好了試試看運(yùn)行一下吧:T指令,看成功了,把B800放進(jìn)了AX里面,再繼續(xù)AX被復(fù)制到了BX里面.
 

好了,本章就講到這里,我每隔幾天寫一章希望期間你能多多練習(xí)!

作業(yè):編寫篇代碼,把1234H寫進(jìn)AX寄存器,把3412H寫進(jìn)BX寄存器,把567FH寫進(jìn)CX寄存器,把BX寄存器復(fù)制到DX寄存器.然后編譯出來,提交作業(yè)的郵箱:o7007@vip.qq.com

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 国产精品久久久久久久午夜 | 欧美一级片在线播放 | 欧美激情视频一区二区三区 | 亚洲一区二区av | 国产成人在线视频 | 日韩成人精品一区二区 | 免费毛片观看 | 色偷偷噜噜噜亚洲男人 | 香蕉综合网 | 亚洲 欧美 激情 另类 校园 | 国产精品一区一区三区 | 福利在线播放 | 欧美性久久 | 国产一区二区不卡视频 | 在线视频h | 欧美三级又粗又硬 | 亚洲免费婷婷 | 亚洲亚洲人成综合网络 | 91性高潮久久久久久久久 | 免费黄色小网站 | 日韩国产精品视频 | 自拍视频一区 | 男女啪啪免费网站 | 成人在线播放视频 | 免费在线成人网 | 91在线小视频| 亚洲国产精品久久 | wwwxxx欧美 | 三级视频在线 | 神马午夜视频 | 欧美一区二区三区视频 | 欧美成人精品一区二区三区在线看 | 欧美在线激情 | 亚洲国产欧美日韩在线 | 亚洲欧美精品在线 | 国产日韩在线视频 | 五月精品| 色婷婷狠狠 | 18在线观看免费入口 | 国产精品原创 | 久久久一区二区三区 |