新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 第6章 動(dòng)手操作-DEBUG的使用2(X86匯編教程)

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

        作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏
        本章將真正開始教你一些匯編指令,也許你早就期待著了.好,首先說匯編指令的格式(看不懂的話不要糾結(jié)在這里,繼續(xù)看,后邊會(huì)進(jìn)行講解!):
        [代碼標(biāo)號(hào)][:]<指令名>[空格][操作數(shù)1][,][操作數(shù)2]
        打了尖括號(hào)的是每行匯編代碼都必須有的,打方括號(hào)的是看情況決定有沒有的,詳解:

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

        第一個(gè)指令
        相信你已經(jīng)從前邊的內(nèi)容中學(xué)會(huì)了匯編的語法格式.現(xiàn)在將教你1個(gè)指令,并教你在Debug中輸入它進(jìn)行測(cè)試.指令資料:


        指令名:MOV
        操作數(shù)數(shù)量:2
        操作數(shù)用途:目標(biāo)操作數(shù),源操作數(shù)
        指令用途:把一個(gè)數(shù)據(jù)從源操作數(shù)復(fù)制到目標(biāo)操作數(shù)

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

        本文引用地址:http://www.104case.com/article/201612/324281.htm
        好了,接下來,在Debug里面試一下這個(gè)指令吧.打開DeBug,用A指令進(jìn)入[匯編代碼編輯模式](不要急著輸入代碼,先看講解!!!)


        匯編代碼編輯模式講解
        根據(jù)上圖,你會(huì)看到右邊顯示一個(gè)內(nèi)存地址,你輸入的代碼將被轉(zhuǎn)換成機(jī)器碼放到這個(gè)地址.旁邊有一個(gè)光標(biāo),這就是你輸入?yún)R編代碼的地方了.在這里輸入代碼,按下回車,就會(huì)直接將該行代碼轉(zhuǎn)換成機(jī)器碼,并計(jì)算出長度.如果輸入的代碼有錯(cuò)誤,DeBug會(huì)在錯(cuò)誤處下面顯示:"Error"

        DeBug并不是匯編編譯器,所以對(duì)匯編代碼是有限支持,標(biāo)號(hào)是不給用的,只支持十六進(jìn)制,至于二進(jìn)制和十進(jìn)制,反正我是沒在這里用到過.


        上一頁 1 2 下一頁

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 遂宁市| 铁岭市| 武平县| 徐水县| 鹿泉市| 沛县| 化德县| 美姑县| 襄垣县| 邛崃市| 汾阳市| 铅山县| 大竹县| 黑水县| 柞水县| 军事| 黔东| 元朗区| 岫岩| 冷水江市| 南和县| 玛多县| 名山县| 贵溪市| 安国市| 灵山县| 罗源县| 肇州县| 英超| 福鼎市| 城市| 南乐县| 贵定县| 梅河口市| 彭州市| 玉溪市| 卢龙县| 黎城县| 商都县| 肇源县| 宁陵县|