




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、1微機(wi j)原理與接口技術(shù)大家(dji)好!共六百八十二頁2課程目標(biāo)掌握:微型計算機的基本工作原理匯編語言程序設(shè)計方法(fngf)微型計算機接口技術(shù)建立微型計算機系統(tǒng)的整體概念,形成微機系統(tǒng)軟硬件開發(fā)的初步能力共六百八十二頁3教材(jioci)及實驗指導(dǎo)書教材:微機原理(yunl)與接口技術(shù)(第3版). 馮博琴,吳寧主編. 清華大學(xué)出版社實驗指導(dǎo)書微機原理與接口技術(shù)實驗指導(dǎo)書(講義) 陳文革,吳寧,夏秦編. 西安交通大學(xué)微機原理與接口技術(shù)題解及實驗指導(dǎo)(第3版). 吳寧,陳文革編. 清華大學(xué)出版社共六百八十二頁4第1章 微型計算機基礎(chǔ)(jch)概論主要(zhyo)內(nèi)容:微機系統(tǒng)的組成計算
2、機中的編碼、數(shù)制及其轉(zhuǎn)換無符號二進制數(shù)的運算算術(shù)運算和邏輯運算運算中的溢出機器數(shù)的表示及運算基本邏輯門及譯碼器共六百八十二頁5一、微型(wixng)計算機系統(tǒng)微型機的工作原理微機(wi j)系統(tǒng)的基本組成共六百八十二頁61. 計算機的工作(gngzu)原理馮 諾依曼計算機的工作原理(yunl) 存儲程序工作原理共六百八十二頁7存儲(cn ch)程序原理將計算過程描述為由許多條指令按一定順序(shnx)組成的程序,并放入存儲器保存指令按其在存儲器中存放的順序執(zhí)行;由控制器控制整個程序和數(shù)據(jù)的存取以及程序的執(zhí)行。共六百八十二頁8馮 諾依曼計算機體系結(jié)構(gòu)運算器存儲器控制器輸入(shr)設(shè)備輸出設(shè)備(
3、sh ch sh bi)共六百八十二頁9馮 諾依曼機的工作(gngzu)過程內(nèi)存(ni cn)中的程序指令1指令2指令n分析獲取操作數(shù)執(zhí)行存放結(jié)果程序計數(shù)器PC地址CPU取出操作數(shù)共六百八十二頁10馮 諾依曼機的工作(gngzu)過程取一條指令(zhlng)的工作過程:將指令所在地址賦給程序計數(shù)器PC;PC內(nèi)容送到地址寄存器AR,PC自動加1;把AR的內(nèi)容通過地址總線送至內(nèi)存儲器,經(jīng)地址譯碼器譯碼,選中相應(yīng)單元。CPU的控制器發(fā)出讀命令。在讀命令控制下,把所選中單元的內(nèi)容(即指令操作碼)讀到數(shù)據(jù)總線DB。把讀出的內(nèi)容經(jīng)數(shù)據(jù)總線送到數(shù)據(jù)寄存器DR。指令譯碼因為取出的是指令的操作碼,故數(shù)據(jù)寄存器D
4、R把它送到指令寄存器IR,然后再送到指令譯碼器ID 共六百八十二頁馮 諾依曼機的特點(tdin)和不足特點:程序存儲,共享數(shù)據(jù),順序執(zhí)行屬于順序處理機,適合于確定的算法和數(shù)值數(shù)據(jù)的處理。不足:與存儲器間有大量數(shù)據(jù)交互,對總線要求(yoqi)很高;執(zhí)行順序有程序決定,對大型復(fù)雜任務(wù)較困難;以運算器為核心,處理效率較低;由PC控制執(zhí)行順序,難以進行真正的并行處理。11共六百八十二頁典型(dinxng)的非馮 諾依曼機結(jié)構(gòu)數(shù)據(jù)流驅(qū)動的計算機結(jié)構(gòu)當(dāng)指令具有所需數(shù)據(jù)(shj)、且輸出端沒有數(shù)據(jù)(shj)時就可執(zhí)行。12Dataflow Image Processing System共六百八十二頁132.
5、 系統(tǒng)(xtng)組成 主機 硬件系統(tǒng)(xtng) 外設(shè) 微機系統(tǒng) 系統(tǒng)軟件 軟件系統(tǒng) 應(yīng)用軟件CPU存儲器輸入/輸出接口總線共六百八十二頁14微處理器微處理器簡稱CPU,是計算機的核心。主要(zhyo)包括: 運算器 控制器 寄存器組共六百八十二頁15存儲器定義:用于存放計算機工作過程中需要(xyo)操作的數(shù)據(jù)和程序。共六百八十二頁16有關(guān)(yugun)內(nèi)存儲器的幾個概念內(nèi)存單元的地址和內(nèi)容(nirng)內(nèi)存容量內(nèi)存的操作內(nèi)存的分類共六百八十二頁17內(nèi)存(ni cn)單元的地址和內(nèi)容內(nèi)存(ni cn)按單元組織每單元都對應(yīng)一個地址,以方便對單元的尋址1011011038F04H內(nèi)存地址單元內(nèi)
6、容共六百八十二頁18內(nèi)存容量內(nèi)存容量:所含存儲單元的個數(shù),以字節(jié)為單位內(nèi)存容量的大小依CPU的尋址能力(nngl)而定實地址模式下為CPU地址信號線的位數(shù)共六百八十二頁19內(nèi)存(ni cn)操作讀:將內(nèi)存單元(dnyun)的內(nèi)容取入CPU,原單元內(nèi)容不改變;寫:CPU將信息放入內(nèi)存單元,單元中原來的內(nèi)容被覆蓋。共六百八十二頁20內(nèi)存儲器(ni cn ch q)的分類隨機存取存儲器(RAM)只讀存儲器(ROM)按工作(gngzu)方式可分為共六百八十二頁21輸入(shr)/輸出接口接口是CPU與外部設(shè)備(wi b sh bi)間的橋梁CPUI/O接口外設(shè)共六百八十二頁22接口(ji ku)的分類
7、串行接口并行接口數(shù)字接口(ji ku)模擬接口輸入接口輸出接口共六百八十二頁23接口(ji ku)的功能數(shù)據(jù)緩沖寄存;信號電平(din pn)或類型的轉(zhuǎn)換;實現(xiàn)主機與外設(shè)間的運行匹配。共六百八十二頁24總線(zn xin)基本概念分類工作原理常用系統(tǒng)總線標(biāo)準(zhǔn)(biozhn)及其主要技術(shù)指標(biāo) (具體內(nèi)容見后續(xù)課程)共六百八十二頁25軟件系統(tǒng)軟件:為運行、管理和維護計算機系統(tǒng)或為實現(xiàn)某一功能而編寫的各種程序(chngx)的總和及其相關(guān)資料。系統(tǒng)軟件(x tn run jin)應(yīng)用軟件操作系統(tǒng)編譯系統(tǒng)網(wǎng)絡(luò)系統(tǒng)工具軟件軟件共六百八十二頁26二、計算機中的數(shù)制和編碼(bin m)數(shù)制和編碼的表示各種計數(shù)
8、(j sh)制之間的相互轉(zhuǎn)換共六百八十二頁271. 常用(chn yn)計數(shù)法 十進制(D) 二進制(B) 十六進制(sh li jn zh)(H)共六百八十二頁28例:234.98D或(234.98)D1101.11B或(1101.11)BABCD . BFH或(ABCD . BF) H共六百八十二頁292. 各種( zhn)進制數(shù)間的轉(zhuǎn)換非十進制數(shù)到十進制數(shù)的轉(zhuǎn)換(zhunhun)十進制到非十進制數(shù)的轉(zhuǎn)換二進制與十六進制數(shù)之間的轉(zhuǎn)換 共六百八十二頁30非十進制數(shù)到十進制數(shù)的轉(zhuǎn)換(zhunhun)按相應(yīng)(xingyng)的權(quán)值表達式展開例:1011.11B=123+022+121+120+1
9、2-1+ 12-2 =8+2+1+0.5+0.25 =11.755B.8H=5161+11160+816-1 =80+11+0.5 =91.5共六百八十二頁31十進制到非十進制數(shù)的轉(zhuǎn)換(zhunhun)到二進制的轉(zhuǎn)換: 對整數(shù)(zhngsh):除2取余; 對小數(shù):乘2取整。到十六進制的轉(zhuǎn)換: 對整數(shù):除16取余; 對小數(shù):乘16取整。共六百八十二頁32二進制與十六進制(sh li jn zh)間的轉(zhuǎn)換用4位二進制數(shù)表示(biosh)1位十六進制數(shù)例:25.5 = 11001.1B = 19.8H 11001010.0110101B =CA.6AH共六百八十二頁333. 計算機中的編碼(bin
10、m)BCD碼用二進制編碼表示的十進制數(shù)ASCII碼西文字符(z f)編碼共六百八十二頁34BCD碼壓縮(y su)BCD碼用4位二進制碼表示一位十進制數(shù)每4位之間有一個空格擴展BCD碼用8位二進制碼表示一位十進制數(shù),每4位之間有一個空格。共六百八十二頁35BCD碼與二進制數(shù)之間的轉(zhuǎn)換(zhunhun)先轉(zhuǎn)換(zhunhun)為十進 制數(shù),再轉(zhuǎn)換(zhunhun)二進 制數(shù);反之同樣。例:(0001 0001 .0010 0101)BCD =11 .25 =(1011 .01) B共六百八十二頁36ASCII碼西文 字符的編碼(bin m),一般用7位二進 制碼表示。D7位為校驗位,默認(rèn)情況下為
11、0。要求:理解校驗位的作用熟悉0F的ASCII碼共六百八十二頁37ASCII碼的奇偶校驗奇校驗加上校驗位后編碼中“1”的個數(shù)為奇數(shù)(j sh)。例:A的ASCII碼是41H(1000001B)以奇校驗傳送則為 C1H(11000001B)偶校驗加上校驗位后 編碼中“1”的個數(shù)為偶數(shù)。上例若以偶校驗傳送,則為 41H。共六百八十二頁38三、無符號(fho)二進制數(shù)的運算算術(shù)(sunsh)運算邏輯運算無符號數(shù)有符號數(shù)二進 制數(shù)的運算共六百八十二頁39主要(zhyo)內(nèi)容無符號二進 制數(shù)的算術(shù)運算無符號數(shù)的表達范圍運算中的溢出問題(wnt)無符號數(shù)的邏輯運算基本邏輯門和譯碼器共六百八十二頁401.
12、無符號(fho)數(shù)的算術(shù)運算加法運算1+1=0(有進位(jnwi))減法運算0-1=1(有借位)乘法運算除法運算共六百八十二頁41乘除(chngch)運算例000010110100 =00101100B 000010110100=00000010B 即:商=00000010B 余數(shù)(ysh)=11B共六百八十二頁422. 無符號(fho)數(shù)的表示范圍: 0 X 2n-1若運算結(jié)果超出這個范圍,則產(chǎn)生溢出。對無符號數(shù):運算時,當(dāng)最高位(o wi)向更高位(o wi) 有進位(或借位)時則產(chǎn)生 溢出。共六百八十二頁43例: 最高位向前(xin qin)有進位,產(chǎn)生溢出共六百八十二頁443. 邏輯運
13、算與、或、非、異或掌握:與、或、非門邏輯(lu j)符號和邏輯(lu j)關(guān)系(真值表);與非門、或非門的應(yīng)用。共六百八十二頁45“與”、“或”運算(yn sun)“與”運算:任何(rnh)數(shù)和“0”相“與”,結(jié)果為0。“或”運算:任何數(shù)和“1”相“或”,結(jié)果為1。&11共六百八十二頁46“非”、“異或”運算(yn sun)“非”運算按位求反“異或”運算相同(xin tn)則為0,相異則為1共六百八十二頁474. 譯碼器掌握74LS138譯碼器各引腳功能輸入端與輸出(shch)端關(guān)系(真值表)共六百八十二頁4874LS138譯碼器G1G2AG2BCBAY0Y7 主要(zhyo)引腳及功能共六百
14、八十二頁49三、機器數(shù)(有符號(fho)數(shù))的運算共六百八十二頁50計算機中符號(fho)數(shù)的表示機器數(shù)計算機中的數(shù)據(jù)(shj)構(gòu)成:符號位 + 真值 “0” 表示正“1” 表示負(fù)共六百八十二頁51例 +52 = +0110100 = 0 0110100 符號(fho)位 真值-52 = -0110100 = 1 0110100 符號(fho)位 真值共六百八十二頁521. 符號(fho)數(shù)的表示機器(j q)數(shù)的表示方法:原碼反碼補碼共六百八十二頁53原碼(yun m)最高位為符號位(用“0”表示正,用“1”表示負(fù)),其余為真值部分(b fen)。優(yōu)點: 真值和其原碼表示之間的對應(yīng)關(guān)系簡單,
15、容易理解;缺點:計算機中用原碼進行加減運算比較困難0的表示不唯一。共六百八十二頁54數(shù)0的原碼(yun m)8位數(shù)0的原碼(yun m):+0=0 0000000 -0=1 0000000 即:數(shù)0的原碼不唯一。共六百八十二頁55反碼(fn m)對一個機器(j q)數(shù)X:若X0 ,則 X反=X原若X0, 則X補= X反= X原若X BX 若 AX BX OF和SF狀態(tài)不同 AX BX共六百八十二頁239CMP指令(zhlng)例 LEA BX,MAX LEA SI,BUF MOV CL,20 MOV AL,SINEXT:INC SI CMP AL,SI JNC GOON ;CF=0轉(zhuǎn)移(zhu
16、ny) XCHG SI,ALGOON:DEC CL JNZ NEXT MOV BX,AL HLT共六百八十二頁240程序(chngx)功能 MAXBUFXXHXXHXXH在20個數(shù)中找最大的數(shù),并將其存放(cnfng)在MAX單元中。共六百八十二頁241三、乘法(chngf)指令無符號的乘法(chngf)指令MUL*帶符號的乘法指令I(lǐng)MUL注意點:乘法指令采用隱含尋址,隱含的是存放被乘數(shù)的累加器AL或AX及存放結(jié)果的AX,DX.共六百八十二頁2421. 無符號(fho)數(shù)乘法指令格式: MUL OPRD 不能是立即(lj)數(shù)操作: OPRD為字節(jié)數(shù) OPRD為16位數(shù) ALOPRDAXOPRD
17、DXAXAX共六百八十二頁243無符號(fho)數(shù)乘法指令例MUL BYTE PTRBX BXXXHAL XXHAX共六百八十二頁244四、除法(chf)指令無符號(fho)除法指令格式:DIV OPRD有符號除法指令格式:IDIV OPRD共六百八十二頁245除法指令(zhlng)的操作若OPRD是字節(jié)數(shù)執(zhí)行:AX/OPRD 結(jié)果(ji gu):AL=商 AH=余數(shù)若OPRD是雙字節(jié)數(shù)執(zhí)行: DXAX/OPRD結(jié)果:AX=商 DX=余數(shù)指令要求被除數(shù)是除數(shù)的雙倍字長共六百八十二頁246五、BCD碼調(diào)整(tiozhng)指令將指令執(zhí)行的二進制運算結(jié)果調(diào)整為壓縮BCD碼或擴展BCD碼表示的十進制
18、數(shù)。共6條,均為隱含(yn hn)尋址方式,隱含(yn hn)的操作數(shù)是 AL或AL、AH;不能單獨使用,要緊跟在相應(yīng)的算術(shù)運算指令 之后;共六百八十二頁247邏輯運算和移位指令共六百八十二頁248指令(zhlng)類型邏輯運算與,或,非,異或移位操作(cozu)非循環(huán)移位,循環(huán)移位共六百八十二頁249 一、邏輯運算邏輯運算指令(zhlng)對 操作數(shù)的 要求大多與MOV指令 相同?!胺恰边\算指令 要求操作數(shù) 不能是立即數(shù);除“非”運算指令 外,其余指令的執(zhí)行都會使標(biāo)志位OF=CF=0共六百八十二頁2501.“與”指令(zhlng):格式(g shi): AND OPRD1,OPRD2操作:
19、兩操作數(shù)相“與”,結(jié)果送目標(biāo)地址。共六百八十二頁251“與”指令(zhlng)的應(yīng)用實現(xiàn)兩操作數(shù) 按位相與的 運算AND BL,SI使目標(biāo)(mbio)操作數(shù)的 某些位不變,某些位清零AND AL,0FH在操作數(shù) 不變的 情況下使CF和OF清零AND AX,AX共六百八十二頁252“與”指令(zhlng)應(yīng)用例從地址為3F8H 端口中讀入一個字節(jié)數(shù),如果該數(shù) bit1位為1,則可從38FH端口將DATA為首(wishu)地址的 一個字輸出,否則就不能進行數(shù) 據(jù)傳送。 編寫相應(yīng)的 程序段。共六百八十二頁253“與”指令(zhlng)應(yīng)用例開 始取待輸出數(shù)的偏移(pin y)地址讀入狀態(tài)字測試bit
20、1位狀態(tài)Bit1=1?取輸入口地址取輸出口地址 輸出一個字NY共六百八十二頁254“與”指令(zhlng)應(yīng)用例 LEA SI,DATA MOV DX,3F8HWATT:IN AL,DX AND AL,02H JZ WATT ;ZF=1轉(zhuǎn)移(zhuny) MOV DX,38FH MOV AX,SI OUT DX,AX共六百八十二頁2552.“或”運算(yn sun)指令格式(g shi): OR OPRD1,OPRD2操作: 兩操作數(shù)相“或”,結(jié)果送目標(biāo)地址共六百八十二頁256“或”指令(zhlng)的應(yīng)用實現(xiàn)兩操作數(shù) 相 “或”的 運算OR AX,DI使某些位不變,某些位置“1”O(jiān)R CL,
21、0FH在不改變(gibin)操作數(shù)的 情況下使OF=CF=0OR AX,AX共六百八十二頁257“或”指令(zhlng)的應(yīng)用例 OR AL,AL JPE GOON OR AL,80H GOON:.PF=1轉(zhuǎn)移(zhuny)共六百八十二頁258“或”指令(zhlng)的應(yīng)用將一個(y )二進制數(shù)9變?yōu)樽址?如何實現(xiàn)?共六百八十二頁2593.“非”運算(yn sun)指令格式:NOT OPRD操作:操作數(shù)按位取反再送回原地址注:指令中的操作數(shù)不能是立即數(shù)指令的執(zhí)行對標(biāo)志(biozh)位無影響例:NOT BYTE PTRBX共六百八十二頁2604.“異或”運算(yn sun)指令格式: XOR O
22、PRD1,OPRD2操作(cozu):兩操作數(shù)相“異或”,結(jié)果送目標(biāo)地址例: XOR BL,80H XOR AX,AX共六百八十二頁2615.“測試(csh)”指令格式: TEST OPRD1,OPRD2操作: 執(zhí)行“與”運算,但運算的結(jié)果不送回目標(biāo)地址。應(yīng)用:常用于測試某些(mu xi)位的狀態(tài)共六百八十二頁262例:從地址為3F8H的 端口中讀入一個字節(jié)數(shù),當(dāng)該數(shù)的 bit1, bit3, bit5位同時為1時,可從38FH端口將DATA為首(wishu)地址的一個字輸出,否則就不能進行數(shù) 據(jù)傳送。 編寫相應(yīng)的 程序段。共六百八十二頁263源程序代碼(di m): LEA SI,DATA
23、MOV DX,3F8HWATT:IN AL,DX MOV DX,38FH MOV AX,SI OUT DX,AXAND AL,2AHCMP AL,2AHJNZ WATTTEST AL,02HJZ WATT ;ZF=1轉(zhuǎn)移(zhuny)TEST AL,08HJZ WATTTEST AL,20HJZ WATTAND AL,2AHXOR AL,2AHJNZ WATT共六百八十二頁264二、移位指令 非循環(huán)(xnhun)移位指令 循環(huán)移位指令注: 移動一位時由指令直接(zhji)給出; 移動兩位及以上,則移位次數(shù)由CL指定。共六百八十二頁2651. 非循環(huán)(xnhun)移位指令邏輯左移算術(shù)(sunsh
24、)左移邏輯右移算術(shù)右移共六百八十二頁266算術(shù)(sunsh)左移和邏輯左移算術(shù)(sunsh)左移指 令: SAL OPRD,1 SAL OPRD,CL邏輯左移指 令: SHL OPRD,1 SHL OPRD,CL有符號數(shù)無符號數(shù)共六百八十二頁267邏輯(lu j)右移格式(g shi): SHR OPRD,1 SHR OPRD,CL0CF無符號數(shù)的右移共六百八十二頁268邏輯(lu j)右移例:MOV AL,68HMOV CL,2SHR AL,CL0CF0 1 1 0 1 0 AL0 0 0 0 0 1 1 0 1 0 0ALCF0 00 0 0 1 1 0 1 0 ALCF0 0移動(ydn
25、g)1次移動2次共六百八十二頁269算術(shù)(sunsh)右移格式(g shi): SAR OPRD,1 SAR OPRD,CL有符號數(shù)的右移CF共六百八十二頁270非循環(huán)(xnhun)移位指令的應(yīng)用左移可實現(xiàn)乘法運算右移(yu y)可實現(xiàn)除法運算 教材p121例共六百八十二頁2712. 循環(huán)(xnhun)移位指令不帶進位位的循環(huán)(xnhun)移位帶進位位的循環(huán)移位左移 ROL右移 ROR左移 RCL右移 RCR指令格式、對操作數(shù)的要求與非循環(huán)移位指令相同共六百八十二頁272不帶進位位的循環(huán)(xnhun)移位CFCF共六百八十二頁273帶進位(jnwi)位的循環(huán)移位CFCF共六百八十二頁274循環(huán)
26、(xnhun)移位指令的應(yīng)用用于對某些位狀態(tài)的測試;高位部分和低位部分的交換;與非循環(huán)移位指令一起組成32位或更長字長(z chn)數(shù)的移位。P124例3-34P124例3-35共六百八十二頁275程序(chngx)功能將1000H開始存放的4個壓縮(y su)BCD碼轉(zhuǎn)換為ASCII碼存放在3000H開始的單元中去。12H34H56H78H1000H3000H共六百八十二頁276程序(chngx)例 MOV SI,1000H MOV DI,3000H MOV CX,4Next:MOV AL,SI MOV BL,AL AND AL,0FH OR AL,30H MOV DI,AL INC DI
27、MOV AL,BLPUSH CXMOV CL,4SHR AL,CLOR AL,30HMOV DI,ALINC DIINC SIPOP CXDEC CXJNZ NextHLT共六百八十二頁277串操作(cozu)指令共六百八十二頁278串操作(cozu)指令說明針對數(shù)據(jù)塊或字符串的操作;可實現(xiàn)存儲器到存儲器的數(shù)據(jù)傳送(chun sn);待操作的數(shù)據(jù)串稱為源串,目標(biāo)地址稱為目標(biāo)串。共六百八十二頁279串操作指令(zhlng)的特點源串一般存放在數(shù)據(jù)段,偏移地址由SI指定。允許段重設(shè);目標(biāo)串必須在附加段,偏移地址由DI指定;指令自動修改地址指針,修改方向由DF決定(judng)。 DF=0 DF=1
28、數(shù)據(jù)塊長度值由CX指定可增加自動重復(fù)前綴以實現(xiàn)自動修改CX內(nèi)容。增地址方向;減地址方向;共六百八十二頁280重復(fù)(chngf)前綴無條件重復(fù)REP條件(tiojin)重復(fù)REPE 相等重復(fù)REPZ 為零重復(fù)REPNE 不相等重復(fù)REPNZ 不為零重復(fù)CX0 ZF=1CX0 ZF=0CX0 重復(fù)共六百八十二頁281串操作指令(zhlng)流程(以傳送操作為例)取源串地址(dzh)取目標(biāo)串地址設(shè)串長度傳送一個字節(jié)或字修改地址指針修改串長度值傳送完否?NY設(shè)操作方向共六百八十二頁282串操作(cozu)指令串傳送(chun sn) MOVS串比較 CMPS串掃描 SCAS串裝入 LODS串送存 ST
29、OS共六百八十二頁2831. 串傳送(chun sn)指令格式: MOVS OPRD1,OPRD2 MOVSB MOVSW串傳送指令常與無條件重復(fù)(chngf)前綴連用共六百八十二頁284串傳送(chun sn)指令對比用MOV指令和MOVS指令實現(xiàn)將200個字節(jié)數(shù)據(jù)從內(nèi)存的一個(y )區(qū)域送到另一個(y )區(qū)域的程序段。共六百八十二頁285串傳送(chun sn)指令例用串傳送指令實現(xiàn)200個字節(jié)(z ji)數(shù)據(jù)的傳送: LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT共六百八十二頁2862. 串比較(bjio)指令格式(g shi):
30、 CMPS OPRD1,OPRD2 CMPSB CMPSW串比較指令常與條件重復(fù)前綴連用,指令的執(zhí) 行不改變操作數(shù),僅影響標(biāo)志位。前綴的操作對標(biāo)志位不影響共六百八十二頁287串比較(bjio)指令例測試200個字節(jié)數(shù)據(jù)是否(sh fu)傳送正確:LEA SI,MEM1LEA DI,MEM2MOV CX,200CLD REPE CMPSB TEST CX,00FFH JZ STOP DEC SI MOV AL,SI MOV BX,SISTOP:HLT 共六百八十二頁2883. 串掃描(somio)指令格式(g shi): SCAS OPRD SCASB SCASW執(zhí)行與CMPS指令相似的操作,只
31、是這里的源 操作數(shù)是AX或AL目 標(biāo)操作數(shù)共六百八十二頁289串掃描(somio)指令的應(yīng)用常用(chn yn)于在指定存儲區(qū)域中尋找某個關(guān)鍵字。共六百八十二頁290串裝入指令(zhlng)格式: LODS OPRD LODSB LODSW操作(cozu):對字節(jié):對 字:源操作數(shù)DS:SIDS:SIALAX共六百八十二頁2914. 串裝入指令(zhlng)用于將內(nèi)存某個區(qū)域的數(shù)據(jù)串依次裝入累加 器,以便(ybin)顯示或輸出到接口。LODS指令一般不加重復(fù)前綴。共六百八十二頁2925. 串存儲(cn ch)指令格式(g shi): STOS OPRD STOSB STOSW操作:對字節(jié): A
32、L對 字: AX目 標(biāo)操作數(shù)ES:DIES:DI共六百八十二頁293串存儲指令(zhlng)的應(yīng)用常用于將內(nèi)存某個區(qū)域置同樣的值此時:將待送存的數(shù)據(jù)放入AL(字節(jié)數(shù))或AX(字?jǐn)?shù)據(jù));確定操作方向(增地址/減地址)和區(qū)域大?。ùL度值);使用串存儲指令+無條件重復(fù)前綴(qinzhu),實現(xiàn)數(shù)據(jù)傳送。共六百八十二頁294串存儲指令例 內(nèi)存(ni cn)某個區(qū)域清零將內(nèi)存某單元清零設(shè)計(shj)思想: 區(qū)域首地址送ES:DI串長度送CX置方向標(biāo)志DF0送累加器AL執(zhí)行串送存指令共六百八十二頁295程序控制(chngxkngzh)指令轉(zhuǎn)移指令(zhlng)循環(huán)控制過程調(diào)用中斷控制共六百八十二頁296
33、程序(chngx)的執(zhí)行方向程序控制類指令的本質(zhì)是:控制程序的執(zhí)行方向決定程序執(zhí)行方向的因素:CS,IP控制程序執(zhí)行方向的方法:修改CS 和IP ,則程序轉(zhuǎn)向另一個代碼段執(zhí)行;僅修改IP,則程序?qū)⒏淖?gibin)當(dāng)前的執(zhí)行順序,轉(zhuǎn)向本代碼段內(nèi)其它某處執(zhí)行。共六百八十二頁297一、轉(zhuǎn)移(zhuny)指令無條件轉(zhuǎn)移指令 無條件轉(zhuǎn)移到目標(biāo)地址,執(zhí)行新的指令有條件(tiojin)轉(zhuǎn)移指令 在具備一定條件的情況下轉(zhuǎn)移到目標(biāo)地址通過修改指令的偏移地址或段地址及偏移地址實現(xiàn)程序的轉(zhuǎn)移共六百八十二頁2981. 無條件轉(zhuǎn)移(zhuny)指令格式(g shi): JMP OPRD目標(biāo)地址與JMP在同一代碼段與J
34、MP不在同一代碼段原則上可實現(xiàn)在整個內(nèi)存空間的轉(zhuǎn)移共六百八十二頁299無條件段內(nèi)轉(zhuǎn)移(zhuny)轉(zhuǎn)移的目標(biāo)地址在當(dāng)前代碼段內(nèi),段地址不 改變(gibin)。即:目標(biāo)地址是16位偏移地址。指令中直接給出目標(biāo)地址由指令中的寄存器或存儲器操作數(shù)指出目標(biāo)地址段內(nèi)直接轉(zhuǎn)移段內(nèi)間接轉(zhuǎn)移共六百八十二頁300段內(nèi)直接(zhji)轉(zhuǎn)移轉(zhuǎn)移的目標(biāo)地址由指令(zhlng)直接給出格式:JMP Label近地址標(biāo)號共六百八十二頁301段內(nèi)直接(zhji)轉(zhuǎn)移示圖JMPLabel代碼段位移(wiy)量下一條要執(zhí)行指令的偏移地址=當(dāng)前IP+位移量JMP Label共六百八十二頁302段內(nèi)間接(jin ji)轉(zhuǎn)移段內(nèi)間接
35、(jin ji)轉(zhuǎn)移轉(zhuǎn)移的目標(biāo)地址存放在某個16位寄存器或存儲器 的某兩個單元中例:JMP BX若:BX=1200H則:轉(zhuǎn)移的目標(biāo)地址=1200HJMP代碼段1200HMOV共六百八十二頁303段內(nèi)間接(jin ji)轉(zhuǎn)移例JMP WORD PTRBX 設(shè):BX=1200HJMP代碼段數(shù)據(jù)(shj)段BX=1200XXHXXHIP指令碼共六百八十二頁304無條件段間轉(zhuǎn)移(zhuny)轉(zhuǎn)移(zhuny)的目標(biāo)地址不在當(dāng)前代碼段內(nèi)。目標(biāo)地址為32位,包括段地址和偏移地址。指令中直接給出目標(biāo)地址由指令中的32位存儲器操作數(shù)指出目標(biāo)地址段間直接轉(zhuǎn)移段間間接轉(zhuǎn)移共六百八十二頁305段間直接(zhji)轉(zhuǎn)
36、移段內(nèi)直接轉(zhuǎn)移(zhuny)轉(zhuǎn)移的目標(biāo)地址由指令直接給出格式:JMP FAR Label遠(yuǎn)地址標(biāo)號共六百八十二頁306段間直接(zhji)轉(zhuǎn)移示圖JMPLabel代碼段1Label與JMP之間的位移(wiy)量代碼段2XXHXXHXXHXXHIPCS共六百八十二頁307段間間接(jin ji)轉(zhuǎn)移段內(nèi)間接尋址轉(zhuǎn)移的目標(biāo)地址(dzh)由指令中的32位操作數(shù)給出 例:JMP DWORD PTRBXXXHXXHXXHXXHBXIPCSJMP指令碼代碼段1代碼段2數(shù)據(jù)段共六百八十二頁308無條件轉(zhuǎn)移(zhuny)指令例(1) 2000:0100 MOV AX,1200H(2) 2000:0103 JM
37、P NEXT (3) 2000:0120 NEXT: MOV BX,1200H (4) JMP BX (5) 2000:1200 共六百八十二頁309無條件轉(zhuǎn)移(zhuny)指令例MOV SI,1122HMOV WORD PTRSI,0120HADD SI,2MOV WORD PTRSI,0122HJMP DWORD PTRSI-2JMP WORD PTRSIJMP1122H代碼段數(shù)據(jù)段01H22H20H01HIPCSIP共六百八十二頁3102. 條件轉(zhuǎn)移(zhuny)指令在滿足一定條件(tiojin)下,程序轉(zhuǎn)移到目標(biāo)地址繼續(xù)執(zhí)行條件轉(zhuǎn)移指令均為段內(nèi)短轉(zhuǎn)移,即轉(zhuǎn)移 范圍為: -128+127
38、共六百八十二頁311條件轉(zhuǎn)移(zhuny)指令的應(yīng)用幾種(j zhn)條件轉(zhuǎn)移指令的應(yīng)用JC/JNC判斷CF的狀態(tài)。常用于比大小JZ/JNZ判斷ZF的狀態(tài)。常用于循環(huán)體的結(jié)束判斷JO/JNO判斷OF的狀態(tài)。常用于有符號數(shù)溢出的判斷JP/JPE判斷PF的狀態(tài)。用于判斷運算結(jié)果低8位中1的個數(shù)是否為偶數(shù)JA/JAE/JB/JBE判斷CF或CF+ZF的狀態(tài)。常用于無符號數(shù)的大小比較共六百八十二頁312轉(zhuǎn)移(zhuny)指令例統(tǒng)計內(nèi)存數(shù)據(jù)段中以TABLE為首地址的100個8位符號數(shù)中正數(shù)(zhngsh)、負(fù)數(shù)和零元數(shù)的個數(shù)。共六百八十二頁313轉(zhuǎn)移(zhuny)指令例(流程圖)將存放(cnfng)各元
39、素個數(shù)的單元清零取首地址設(shè)串長度取一個字節(jié)數(shù)正數(shù)個數(shù)加1零元素加1為負(fù)?為零?負(fù)數(shù)個數(shù)加1NYNYp133共六百八十二頁314二、循環(huán)(xnhun)控制指令循環(huán)(xnhun)范圍:以當(dāng)前IP為中心的-128+127范圍內(nèi)循環(huán)。循環(huán)次數(shù)由CX寄存器指定。循環(huán)指令:LOOP *LOOPZ *LOOPNZ無條件循環(huán)指令條件循環(huán)指令共六百八十二頁315無條件循環(huán)(xnhun)指令格式: LOOP LABEL循環(huán)條件: CX 0操作: DEC CX JNZ 符號(fho)地址P133例3-44共六百八十二頁316三、過程調(diào)用(dioyng)和返回用于調(diào)用一個子過程;子過程由程序員預(yù)先設(shè)計 并裝入內(nèi)存 子
40、過程執(zhí)行(zhxng)結(jié)束后要返回 原調(diào)用處調(diào)用程序斷點入口地址子程序共六百八十二頁317調(diào)用指令(zhlng)的執(zhí)行過程保護斷點;將調(diào)用指令的下一條指令的地址(斷點)壓入堆棧獲取子過程的入口地址;子過程第1條指令的偏移(pin y)地址執(zhí)行子過程,含相應(yīng)參數(shù)的保存及恢復(fù);恢復(fù)斷點,返回原程序。將斷點偏移地址由堆棧彈出共六百八十二頁318過程(guchng)調(diào)用段內(nèi)調(diào)用(dioyng)段間調(diào)用段內(nèi)直接調(diào)用段內(nèi)間接調(diào)用段間直接調(diào)用段間間接調(diào)用共六百八十二頁3191. 段內(nèi)調(diào)用(dioyng)被調(diào)用程序與調(diào)用程序在同一代碼段調(diào)用前只需保護斷點(dun din)的偏移地址格式: CALL NEAR
41、PROC執(zhí)行過程:近過程名代碼段1調(diào)用程序被調(diào)用程序代碼段1 將斷點的偏移地址壓入堆棧 根據(jù)過程名找子程序入口共六百八十二頁320段內(nèi)調(diào)用(dioyng)例(1)CALL TIMRE(2)CALL WORD PTRSI直接(zhji)調(diào)用間接調(diào)用44H33HCALL代碼段數(shù)據(jù)段設(shè):SI=1200H CS=6000H1200H執(zhí)行第(2)條指令后:6000HCS =3344HIP =共六百八十二頁3212. 段間調(diào)用(dioyng)子過程與原調(diào)用程序不在同一代碼段斷點(dun din)保護時的壓棧順序:先將斷點的CS壓棧,再壓入IP。調(diào)用前需保護斷點的段基地址和偏移地址共六百八十二頁322段間調(diào)
42、用(dioyng)例格式(g shi): CALL FAR PROC格式例:CALL FAR TIMRECALL DWORD PTRSIXXHXXHCALL代碼段數(shù)據(jù)段SIXXHXXHCSIP共六百八十二頁3233. 返回(fnhu)指令功能:從堆棧中彈出斷點(dun din)地址,返回原程序格式: RETRET指令一般位于子程序的最后。共六百八十二頁324四、中斷(zhngdun)指令中斷中斷源中斷的類型中斷指令(zhlng)引起CPU產(chǎn)生一次中斷的指令共六百八十二頁325中斷(zhngdun)與過程調(diào)用:中斷是隨機事件或異常事件引起,調(diào)用則是事 先已在程序中安排(npi)好 ; 響應(yīng)中斷請
43、求不僅要保護斷點地址,還要保護 FLAGS內(nèi)容;調(diào)用指令在指令中直接給出子程序入口地址, 中斷指令只給出中斷向量碼,入口地址則在向 量碼指向的內(nèi)存單元中。共六百八十二頁3261. 中斷(zhngdun)指令格式(g shi): INT n說明: n4中斷類型碼n=0 255n 4 XXHXXHXXHXXH入口的段地址入口的偏移地址存放中斷服務(wù)子程序入口地址的單元的偏移地址代碼段數(shù)據(jù)段該單元在數(shù)據(jù)段,段地址=DS共六百八十二頁327中斷(zhngdun)指令的執(zhí)行過程將FLAGS壓入堆棧;將INT指令的下一條(y tio)指令的CS、IP壓棧;由n4得到存放中斷向量的地址;將中斷向量(中斷服務(wù)程
44、序入口地址)送CS和IP寄存器;轉(zhuǎn)入中斷服務(wù)程序。共六百八十二頁328中斷指令(zhlng)的執(zhí)行過程n4 22H11H00H67HIPCS68122HMOV代碼段數(shù)據(jù)(shj)段堆棧段SPFLAGSHFLAGSLIPHCSLCSHIPLSPSPSP共六百八十二頁329中斷(zhngdun)指令例執(zhí)行程序段: CS IP 6200H:0110H INT 21H6200H:0112H MOV AX,BX 12H01H00H62HSP=1200FLAGSLFLAGSHSP=11FA執(zhí)行(zhxng)INT指令后堆棧段共六百八十二頁330中斷(zhngdun)指令例執(zhí)行(zhxng)INT 21H指
45、令后 IP=21H4 CS=(21H4)+20084H 23H11H00H20HIP CS數(shù)據(jù)段代碼段XX21123H 中斷服務(wù)子程序共六百八十二頁3312. 溢出中斷(zhngdun)指令格式(g shi): INTO 若OF=1,則啟動一個類型為4的中斷過程,給出一個出錯標(biāo)志,如果OF=0,不做任何操作。INTO指令通常安排在有符號數(shù)加減運算指令之后。相當(dāng)于INT 4共六百八十二頁3323. 中斷(zhngdun)返回指令格式: IRET中斷(zhngdun)服務(wù)程序的最后一條指令,負(fù)責(zé)恢復(fù)斷點恢復(fù)標(biāo)志寄存器內(nèi)容共六百八十二頁333六、處理器控制指令對標(biāo)志(biozh)位的操作與外部設(shè)備的
46、同步說明(shumng)見p139表共六百八十二頁334結(jié)束語:掌握:指令的格式及意義;指令對操作數(shù)的要求(yoqi)及對標(biāo)志位的影響;指令的應(yīng)用。謝謝(xi xie)大家!共六百八十二頁335第4章匯編語言(hu bin y yn)程序設(shè)計共六百八十二頁336主要(zhyo)內(nèi)容匯編語言(hu bin y yn)源程序的結(jié)構(gòu)匯編語言語句格式偽指令功能調(diào)用匯編語言程序設(shè)計共六百八十二頁3374.1 匯編語言(hu bin y yn)源程序了解:匯編語言源程序的結(jié)構(gòu)匯編語言語句類型(lixng)及格式共六百八十二頁338一、匯編語言(hu bin y yn)源程序結(jié)構(gòu)共六百八十二頁3391. 匯
47、編語言(hu bin y yn)源程序與匯編程序匯編語言(hu bin y yn)源程序匯編程序用助記符編寫匯編程序匯編語言源程序機器語言目標(biāo)程序源程序的編譯程序共六百八十二頁3402. 匯編語言(hu bin y yn)程序設(shè)計與執(zhí)行過程輸入?yún)R編語言源程序(EDIT)匯編(MASM)鏈接(lin ji)(LINK)調(diào)試(TD)源文件 . ASM目標(biāo)文件 .OBJ可執(zhí)行文件.EXE最終程序共六百八十二頁341二、匯編語言語句(yj)類型及格式共六百八十二頁3421. 匯編語言(hu bin y yn)語句類型指令性語句(yj)指示性語句CPU執(zhí)行的語句,能夠生成目標(biāo)代碼CPU不執(zhí)行,而由匯編程
48、序執(zhí)行的語句,不生成目標(biāo)代碼共六百八十二頁3432. 匯編語言語句(yj)格式 指令性語句: 標(biāo)號: 前綴(qinzhu) 助記符 操作數(shù),操作數(shù) ;注釋指令的符號地址標(biāo)號后要有冒號操作碼注釋前加分號共六百八十二頁344指示(zhsh)性語句格式名字(mng zi) 偽指令助記符 操作數(shù) ,操作數(shù), ;注釋變量的符號地址其后不加冒號指示性語句中至少有一個操作數(shù)共六百八十二頁3453. 標(biāo)號(bioho)、名字標(biāo)號后有冒號,在指令性語句前;名字后不加冒號,在指示性語句前。英文字母、數(shù)字及專用(zhunyng)字符組成,最大長度不能超過31個,且不能由數(shù)字打頭,不能用保留字(如寄存器名,指令助記符
49、,偽指令)。 共六百八十二頁3464. 操作數(shù)寄存器存儲器單元(dnyun)常量變量或標(biāo)號表達式共六百八十二頁347常 量數(shù)字(shz)常量字符串常量例:A MOV AL,A例:ABCD匯編(hubin)時被譯成對應(yīng)的ASCII碼41H,42H,43H,44H用單引號引起的字符或字符串共六百八十二頁348變 量代表(dibio)內(nèi)存中的數(shù)據(jù)區(qū),程序中視為存儲器操作數(shù)變量的屬性: 變量所在段的段地址 變量單元地址與段首地址之 間的位移量。 字節(jié)型、字型和雙字型段 值偏移量類 型共六百八十二頁349表達式算術(shù)運算邏輯運算*關(guān)系運算取值運算和屬性(shxng)運算其它運算共六百八十二頁350算術(shù)(s
50、unsh)運算和邏輯運算符算術(shù)(sunsh)運算符+,-,*,/,MOD邏輯運算符AND,OR,NOT,XOR例:MOV AL,8 AND 4MOV AL,8+4-1共六百八十二頁351取值運算符取得其后變量或標(biāo)號(bioho)的偏移地址取得其后變量或標(biāo)號的段地址TYPE 取變量的類型LENGTH 取所定義存儲(cn ch)區(qū)的長度SIZE 取所定義存儲區(qū)的字節(jié)數(shù)用于分析存儲器操作數(shù)的屬性獲取變量的屬性值OFFSETSEG共六百八十二頁352取值運算符例 MOV AX,SEG DATA MOV DS,AX MOV BX,OFFSET DATA LEA BX,DATA等價(dngji)于共六百八
51、十二頁353取值運算符例若BUFFER存儲區(qū)用如下(rxi)偽指令定義: BUFFER DW 200 DUP(0) 則: TYPE BUFFER 等于2 LENGTH BUFFER等于200 SIZE BUFFER等于400共六百八十二頁354屬性(shxng)運算符 用于指定(zhdng)其后存儲器操作數(shù)的類型 運算符:PTR 例: MOV BYTR PTRBX,12H共六百八十二頁355其它(qt)運算符方括號: 段重設(shè)(zhn sh)符 段寄存器名: 方括號中內(nèi)容為操作數(shù)的偏移地址用于修改默認(rèn)的段基地址共六百八十二頁3564.2 偽指令掌握:偽指令的格式及實現(xiàn)的操作(cozu)偽指令的應(yīng)
52、用共六百八十二頁357偽指令由匯編程序執(zhí)行的“指令系統(tǒng)”作用:定義變量;分配存儲區(qū)定義邏輯段;指示程序開始和結(jié)束(jish);定義過程等。共六百八十二頁358常用(chn yn)偽指令數(shù)據(jù)(shj)定義偽指令符號定義偽指令段定義偽指令結(jié)束偽指令過程定義偽指令宏命令偽指令共六百八十二頁359一、數(shù)據(jù)(shj)定義偽指令用于定義數(shù)據(jù)區(qū)中變量的類型及大小(dxio)格式: 變量名 偽指令助記符 操作數(shù), ;注釋符號地址定義變量類型定義變量值及區(qū)域大小共六百八十二頁3601. 數(shù)據(jù)(shj)定義偽指令助記符DB 定義的變量為字節(jié)(z ji)型DW 定義的變量為字類型(雙字節(jié))DD 定義的變量為雙字型(
53、4字節(jié))DQ 定義的變量為4字型(8字節(jié))DT 定義的變量為10字節(jié)型共六百八十二頁361數(shù)據(jù)(shj)定義偽指令例DATA1 DB 11H,22H,33H,44HDATA2 DW 11H,22H,3344HDATA3 DD 11H*2,22H,33445566H以上變量(binling)在內(nèi)存中的存放形式共六百八十二頁362數(shù)據(jù)定義偽指令例_變量(binling)在內(nèi)存中的分布DATA111223344DATA2224411000033DATA32200220000XX66554433共六百八十二頁363數(shù)據(jù)(shj)定義偽指令的幾點說明偽指令的性質(zhì)(xngzh)決定所定義變量的類型;定義字
54、符串必須用DB偽指令例: DATA1 DB ABCD,66HABCD41H42H43H44H66H共六百八十二頁3642. 重復(fù)(chngf)操作符作用:為一個(y )數(shù)據(jù)區(qū)的各單元設(shè)置相同的初值目的:常用于聲明一個數(shù)據(jù)區(qū)格式: 變量名 偽指令助記符 n DUP(初值,)例: BW 20 DUP(0)M1 DB 10 DUP(0)共六百八十二頁3653. “?”的作用(zuyng)表示(biosh)隨機值,用于預(yù)留存儲空間MEM1 DB 34H,A,? DW 20 DUP(?)預(yù)留40個字節(jié)單元,每單元為隨機值隨機數(shù)占1個字節(jié)單元共六百八十二頁366數(shù)據(jù)(shj)定義偽指令例M1 DB How
55、 are you?M2 DW 3 DUP(11H),3344H DB 4 DUP(?)M3 DB 3 DUP(22H,11H,?)變量在內(nèi)存中的分區(qū)共六百八十二頁367數(shù)據(jù)(shj)定義偽指令例M1How aM211H11H00H44H33H r e you?11H00H00H隨機數(shù)M311H22H11H22H11H22HXXXXXXXXXXXXXX共六百八十二頁368二、符號(fho)定義偽指令格式: 符號名 EQU表達式操作(cozu): 用符號名取代后邊的表達式,不可重新定義例: CONSTANTEQU100 VAR EQU 30H+99HEQU說明的表達式不占用內(nèi)存空間共六百八十二頁3
56、69三、段定義(dngy)偽指令說明邏輯(lu j)段的起始和結(jié)束;說明不同程序模塊中同類邏輯段之間的聯(lián)系形 態(tài)共六百八十二頁370段定義(dngy)偽指令格式段名 SEGMENT 定位類型 組合(zh)類型 類別 段名 ENDS說明邏輯段的起點說明不同模塊中同名段的組和連接方式共六百八十二頁371定位(dngwi)類型PARA: 段的起點(qdin)從節(jié)邊界開始 (16個字節(jié)為1節(jié))BYTE: 段的起點從存儲器任何地址開始WORD:段的起點從偶地址開始PAGE: 段的起點從頁邊界開始 (256個字節(jié)為1頁)共六百八十二頁372組合(zh)類型與其它模塊(m kui)中的同名段在滿足定位類型的
57、前提 下具有的組合方式:NONE: 不組合PUBLIC: 依次連接(順序由LINK程序確定)COMMON: 覆蓋連接STACK: 堆棧段的依次連接AT 表達式:段定義在表達式值為段基的節(jié)邊界MEMORY: 相應(yīng)段在同名段的最高地址處。共六百八十二頁373類別(libi)不同模塊連接時將相同類別的段放在連續(xù)的內(nèi)存(ni cn)區(qū)域中共六百八十二頁374段定義(dngy)偽指令例DATA SEGMENT MEM1 DB 11H,22H MEM2 DB Hello! MEM3 DW 2 DUP(?)DATA ENDS變量在邏輯段中的位置(wi zhi)就代表了它的偏移地址表示變量所在邏輯段的段地址表
58、示變量的類型共六百八十二頁375四、設(shè)定(sh dn)段寄存器偽指令說明(shumng)所定義邏輯段的性質(zhì)格式: ASSUME 段寄存器名:段名,段寄存器名:段名,共六百八十二頁376五、結(jié)束(jish)偽指令表示(biosh)源程序結(jié)束格式: END 標(biāo)號共六百八十二頁377匯編語言(hu bin y yn)源程序結(jié)構(gòu)數(shù)據(jù)(shj)段名 SEGMENT 數(shù)據(jù)段名 ENDS附加段名 SEGMENT 附加段名 ENDS堆棧段名 SEGMENT 堆棧段名 ENDS代碼段名 SEGMENT 代碼段名 ENDS END 共六百八十二頁378一個(y )完整源程序結(jié)構(gòu)例DSEG SEGMENT DATA
59、1 DB 1,2, 3 DUP(?) DATA2 DW 1234HDSEG ENDSESEG SEGMENT DB 20 DUP(?)ESEG ENDSSSEG SEGMENT STACK STACK DB 200 DUP(?)SSEG ENDS共六百八十二頁379一個(y )完整源程序結(jié)構(gòu)例 CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG, ES:ESEG,SS:SSEG START:MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX MOV AX,SSEG MOV SS,AX CSEG ENDS END START源程序 代碼(d
60、i m)段寄存器初始化將段地址送相應(yīng)的段寄存器共六百八十二頁380六、過程(guchng)定義偽指令用于定義一個(y )過程體格式: 過程名 PROC NEAR / FAR RET 過程名 ENDPP157例過程入口的符號地址共六百八十二頁過程(guchng)定義及調(diào)用例定義(dngy)延時子程序 DELAY PROC PUSH BX PUSH CX MOV BL,2NEXT: MOV CX,4167W10M: LOOP W10M DEC BL JNZ NEXT POP CX POP BX RETDELAY ENDP381調(diào)用延時子程序: CALL DELAY 共六百八十二頁382七、宏命令偽
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 東南大學(xué)《ERP沙盤模擬》2023-2024學(xué)年第二學(xué)期期末試卷
- 大連民族大學(xué)《材料科學(xué)與工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 中華女子學(xué)院《公選生命急救常識》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京協(xié)和醫(yī)學(xué)院《健康風(fēng)險評估技術(shù)與實訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東藝術(shù)學(xué)院《國際貿(mào)易基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北工業(yè)大學(xué)工程技術(shù)學(xué)院《智能裝備控制技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 潞安職業(yè)技術(shù)學(xué)院《數(shù)智財務(wù)分析與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年數(shù)字電路的功能測試項目資金申請報告代可行性研究報告
- 熱氣球教學(xué)設(shè)計
- 2024年新型便攜式溫、濕、風(fēng)向風(fēng)速儀資金籌措計劃書代可行性研究報告
- Unit 4 Space Exploration Reading and Thinking 說課課件-2022-2023學(xué)年高中英語人教版(2019)高中英語必修第三冊
- 網(wǎng)絡(luò)設(shè)備巡檢表
- 持續(xù)性姿勢知覺性頭暈PPPD課件
- WonderLab品牌介紹手冊
- Python繪圖庫Turtle詳解(含豐富示例)
- 職業(yè)生涯規(guī)劃課件完整版
- 畢業(yè)論文如何通過具體數(shù)據(jù)及案例加以佐證和分析
- 北京市朝陽區(qū)2022-2023學(xué)年六年級數(shù)學(xué)第二學(xué)期期末教學(xué)質(zhì)量檢測模擬試題含解析
- LED顯示屏生產(chǎn)作業(yè)指導(dǎo)書 生產(chǎn)過程控制工作指引
- 室間質(zhì)評不合格原因分析及糾正措施表
- 水稻育種課件 第八講三系雜交水稻育種
評論
0/150
提交評論