第6章 動手操作-DEBUG的使用2(X86匯編教程)
[代碼標(biāo)號][:]<指令名>[空格][操作數(shù)1][,][操作數(shù)2]
打了尖括號的是每行匯編代碼都必須有的,打方括號的是看情況決定有沒有的,詳解:
標(biāo)號(這個暫時不用理解,先大概看看,以后講到了再理解.):
之前說過,匯編代碼是在內(nèi)存中的,所以,每行代碼都會在內(nèi)存中占用一定字節(jié),當(dāng)然,也就有了個地址.有的時候我們可能會需要用到某行代碼的地址,代碼將會被放到內(nèi)存的什么地方,一般在代碼編譯出來就會計算好.所以在代碼中可以直接輸入那行代碼在內(nèi)存中的地址.但是呢.假如修改了代碼,那內(nèi)存地址不就變了嗎? 所以人們想了這么個辦法:用一句文本代替數(shù)字地址,等編譯器編譯的時候計算出那行文本所代表的代碼的地址再自動填寫進(jìn)引用到那句文本的地方.
":":
這個是跟在標(biāo)號后邊的,把標(biāo)號和指令名區(qū)分開來(就算特殊情況標(biāo)號后邊沒有任何東西也必須加":").
指令名:
匯編代碼的指令,CPU根據(jù)指令知道要做什么事.
空格:
把指令和操作數(shù)區(qū)分開來.
",":
把2個操作數(shù)區(qū)分開來
操作數(shù):
執(zhí)行指令所需要的數(shù)據(jù),比如我們在數(shù)學(xué)中要進(jìn)行除法運(yùn)算,需要被除數(shù)和除數(shù)這2個"操作數(shù)",在匯編里,匯編指令也需要相應(yīng)的操作數(shù)才能進(jìn)行計算,需要多少個操作數(shù)由指令決定,有些指令不需要操作數(shù),有些需要1個,有些需要2個)
第一個指令
相信你已經(jīng)從前邊的內(nèi)容中學(xué)會了匯編的語法格式.現(xiàn)在將教你1個指令,并教你在Debug中輸入它進(jìn)行測試.指令資料:
指令名:MOV
操作數(shù)數(shù)量:2
操作數(shù)用途:目標(biāo)操作數(shù),源操作數(shù)
指令用途:把一個數(shù)據(jù)從源操作數(shù)復(fù)制到目標(biāo)操作數(shù)
我希望你能寫一個筆記,把將來教的各種指令記錄下來.這對學(xué)習(xí)有好處,指令手冊什么的,只有手冊作者的理解,無法寫入你自己的理解.人家寫的你不一定看的懂.
本文引用地址:http://cafeforensic.com/article/201612/324281.htm 好了,接下來,在Debug里面試一下這個指令吧.打開DeBug,用A指令進(jìn)入[匯編代碼編輯模式](不要急著輸入代碼,先看講解!!!)
匯編代碼編輯模式講解
根據(jù)上圖,你會看到右邊顯示一個內(nèi)存地址,你輸入的代碼將被轉(zhuǎn)換成機(jī)器碼放到這個地址.旁邊有一個光標(biāo),這就是你輸入?yún)R編代碼的地方了.在這里輸入代碼,按下回車,就會直接將該行代碼轉(zhuǎn)換成機(jī)器碼,并計算出長度.如果輸入的代碼有錯誤,DeBug會在錯誤處下面顯示:"Error"
DeBug并不是匯編編譯器,所以對匯編代碼是有限支持,標(biāo)號是不給用的,只支持十六進(jìn)制,至于二進(jìn)制和十進(jìn)制,反正我是沒在這里用到過.
關(guān)鍵詞:
動手操作DEBUGX86匯編教
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論