




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、微機原理整理 江蘇大學非計算機專業(yè)使用,本人私人資料;微機原理97FLAGS標志寄存器:6個狀態(tài)標志位和3個控制標志CF:進位標志位。當進行加減法運算時,若最高位向前有進借位CF=1,無CF=0。PF:奇偶標志位。當運算結果的低8位中1的個數(shù)為偶數(shù)時PF=1,為奇數(shù)時PF=0。AF:輔助進位標志。D3向D4有借進位發(fā)生時AF=1,無借進位發(fā)生AF=0。ZF:零位標志。當運算結果為零時ZF=1,運算結果不為零時ZF=0。SF:符號標志位。當運算結果的最高位為1時SF=1,最高位為0時SF=0。OP:溢出標志位。當運算結果超出了帶符號數(shù)的范圍,即溢出時OF=1,未溢出時OF=0。(D7為符號位,說
2、明:D7,D6,D5,D4,D3,D2,D1,D0)332算數(shù)運算指令算數(shù)運算指令;加,減,乘,除有符號數(shù)的溢出:OF無符號數(shù)的溢出:CF指令對操作數(shù)的要求:單操作數(shù)指令中的操作數(shù)不允許使用立即數(shù) 雙操作數(shù)指令中,立即數(shù)只能作為源操作數(shù),不允許源操作數(shù)和目的操作數(shù)都是存儲器。1, 加法運算指令(不允許段寄存器作為操作數(shù)和兩個都是存儲器)1) ADD普通加法指令(對全部6個狀態(tài)標志位都會產(chǎn)生影響)ADD OPRD1,OPRD2 ;OPRD1+OPRD2送到OPRD1中去ADD SI,BX是錯誤的 ;不允許兩個操作數(shù)都是存儲器操作數(shù) 例:MOV AL,7EH ADD AL,5BH 程序執(zhí)行后,AL
3、=D9H,即11011001B, D9H>7FH(8位帶符號數(shù)的最大值) OF=1 D9H<FFH(8位無符號數(shù)的最大值) CF=0 所有狀態(tài)標志位AF=0,CF=0,OF=1,PF=0,SF=1,ZF=02) ADC帶進位(CF)位的加法指令(對全部6個狀態(tài)標志位都會產(chǎn)生影響)ADC OPRD1,OPRD2 ;OPRD1+OPRD2+CF送到OPRD1中去不允許兩個操作數(shù)都是存儲器操作數(shù) 例:設CF=1,寫出以下指令執(zhí)行后的結果MOV AL,7EH ADC AL,0ABH 指令執(zhí)行后:AL=7EH+0ABH+1=2AH,且CF=13) INC加1指令(不影響CF,影響其它5個狀態(tài)
4、標志)INC OPRD ;OPRD+1送到OPRD中去OPRD不能是立即數(shù)通常用于在循環(huán)程序中修改地址指針及循環(huán)次數(shù)2, 減法指令(不允許段寄存器作為操作數(shù)和兩個都是存儲器)1) SUB不考慮借位的減法指令(對全部6個狀態(tài)標志位都會產(chǎn)生影響)SUB OPRD1,OPRD2 不允許兩個操作數(shù)都是存儲器操作數(shù) 例:SUB AL,BP+SI ;將SS:BP+SI單元的內(nèi)容送到AL中去 基址變址尋址:基址:BX或BP 變址:SI或DI DSJBX變址 SS JBP變址2) SBB考慮借位的減法指令(對全部6個狀態(tài)標志位都會產(chǎn)生影響)SUB OPRD1,OPRD2 ;將OPRD1-OPRD2-CF送到O
5、PRD1中不允許兩個操作數(shù)都是存儲器操作數(shù)3) DEC減1指令(不影響CF,影響其它5個狀態(tài)標志)DEC OPRD OPRD不能是立即數(shù)4) NEG求補指令(對全部6個狀態(tài)標志位都會產(chǎn)生影響)NEG OPRD (求負數(shù)的絕對值) ;用0-OPRDCF通常為1,除非OPRD為0OF通常為0,除非OPRD為80H(-128)或8000H(-32768),執(zhí)行后操作數(shù)不變,但是OF為1。5) CMP比較指令(僅影響6個狀態(tài)標志位)CMP OPRD1,OPRD2 ;OPRD1-OPRD2,結果不送回OPRD1不允許兩個操作數(shù)都是存儲器操作數(shù) 比較兩個操作數(shù)的大小關系。 相等:ZF=1 不相等:無符號數(shù)
6、,CMP AX,BX CF=0,AX>BX CF=1,AX<BX 有符號數(shù),CMP AX,BX SF,OF相同,AX>BX SF,OF不同,AX<BX例:3-24在內(nèi)存數(shù)據(jù)段從DATA開始的單元中存放了兩個8位無符號數(shù),試比較他們的大小,并將大的數(shù)送MAX單元、LEA BX,DATAMOVE AL,BXINC BXCMP AL,BXJNC DONEMOV AL,BXDONE:MOV MAX,AL HLT3, 乘法指令MUL無符號乘法指令(影響CF和OF)MUL OPRD隱含尋址方式,隱含目標操作數(shù)AX(DX),源操作數(shù)由指令給出。字節(jié)乘法:OPRD*AL 送到AX中字乘
7、法:OPRD*AX 送到DX:AX中這里,源操作數(shù)OPRD可以是8位或16位的寄存器或存儲器。乘法指令要求兩操作數(shù)字長相等,且不能為立即數(shù)。MUL BX ;用AX*BX送到DX:AX中MUL BYTE PTRSI ;AL*SI送到AX中MUL DL ;用AL*DL送到AX中例:設AL=0FEH,CL=11H,兩數(shù)均為無符號數(shù),求AL與CL的乘積。MUL CL指令執(zhí)行后:AX=10DEH,因AH中的結果不為零,故CF=OF=1。乘積的高半部分不為0,則CF=OF=1,代表AH或DX中包含乘積的有效數(shù)字 高半部分為0,則CF=OF=04, 除法指令DIV 無符號數(shù)除法指令(對6個標志位均無影響)
8、DIV OPRD隱含尋址方式,隱含了被除數(shù),除數(shù)OPRD不能為立即數(shù)除數(shù)OPRD 8位,則被除數(shù)AX 16位 字位拓展指令CBW AX/OPRD放入AL,AX%OPRD放入AH除數(shù)OPRD 16位,則被除數(shù) DX(高):AX(低) 32位 字位拓展指令CWD DX:AX/OPRD 放入AX,DX:AX%OPRD放入DX 例:用除法指令計算7FA2H/03DDH MOV AX,7FA2H MOV BX,03DDH CWD ;AX擴展為DX=0000H,AX=7FA2H DIV BX ;商=AX=0021H,余數(shù)=DX=0025H3.3.3 邏輯運算與移位指令1,邏輯運算指令 除NOT指令外,其余
9、4條指令對操作數(shù)的要求與MOV指令相同,且使OF=CF=0,其余值不定 1)AND邏輯“與”指令 AND OPRD1,OPRD2 ;按位相與,僅1與1=1 作用之一:使目標操作數(shù)的某些位保持不變,把其他位清0AND AL,0FH ;將AL中的高4位清0,低4位保持不變作用之二;使操作數(shù)不變,但影響6個狀態(tài)標志位,OF=CF=0AND AX,AX 2)OR邏輯“或”指令 OR OPRD1,OPRD2 ; 作用之一:使目標操作數(shù)的某些位保持不變,將另外一些位置1 OR AL,20H ;將AL中的D5位置1,其余不變作用之二:使操作數(shù)不變,但影響6個狀態(tài)標志位,OF=CF=0 OR AX,AX3)N
10、OT邏輯“非”指令(對6個標志位均無影響)NOT OPRD ;OPRD按位取反OPRD 不能是立即數(shù)NOT WORD PTRSI4)XOR邏輯“異或”指令XOR OPRD1,OPRD2 ;將兩操作數(shù)按位進行“異或”異或操作:兩操作數(shù)相同時為0,不同時為1 作用:使某寄存器清零 XOR AX,AX ;使AX清零5)TEST測試指令TEST OPRD1,OPRD2 ;僅影響標志位,工作與AND相同TEST AL,02H ;若AL中D1位為1,則ZF=0,否則ZF=12,移位指令(影響6個狀態(tài)標志位) 作用:實現(xiàn)寄存器操作數(shù)或內(nèi)存操作數(shù)進行指定次數(shù)的位移 移動1次,指令直接給出,2位及以上,移動位數(shù)
11、要放在CL寄存器中。1) 非循環(huán)移位指令算數(shù)移位指令針對有符號數(shù),邏輯移位指令針對無符號數(shù) SAL和SHL 算數(shù)左移和邏輯左移執(zhí)行完全相同的操作 SAL OPRD,1/CL SHL OPRD,1/CL 將OPRD中的內(nèi)容左移一位或CL位,每移一位,左邊的最高位移入標志位CF,在最低位補零。 若移動一次,操作數(shù)的最高位和CF標志位狀態(tài)不相同,則OF=1 狀態(tài)相同,則OF=0 (判斷移位前后的符號位是否一致。)例:MOV AL,41HSHL AL,1執(zhí)行結果為AL=82H,CF=0,OF=1M若視AL為無符號數(shù),則它沒有溢出(82H<FFH) 若視AL為有符號數(shù),則溢出(82H>7FH
12、)(原先AL是41H,而后移位后嗎,D7位從0變?yōu)榱?,產(chǎn)生了溢出。)例:把以DATA為首址的兩個連續(xù)單元中的16位無符號數(shù)乘以10LEA SI,DATAMOV AX,SISHL AX,1 將二進制無符號數(shù)左移一位相當于將這個數(shù)乘以2MOV BX,AXMOV CL,2 左移兩位,則乘以4SHL AX,CLADD AX,BXHLTSHR邏輯右移指令 SHR OPRD,1/CL OPRD順序向右移1位或CL位,右邊最低位移入CF,左邊最高位補零 移動一次,若移動后的最高位與起先的不同,則OF=1,如果相同,則OF=0。例:MOV AL,82HSHR AL,1執(zhí)行結果:AL=41H,CF=0,OF=
13、1 每邏輯右移一位,相當于無符號的目標操作數(shù)除以2,可以用SHR指令完成把一個數(shù)除以2I的運算 SAR算數(shù)右移指令 SAR OPRD,1/CL OPRD順序向右移1位或CL位,右邊最低位移入CF,左邊最高位保持不變 不影響OF,AF例:MOV AL,82HSAR AL,1執(zhí)行結果:AL=C1H,CF=0。2) 循環(huán)移位指令如果最高位與CF不相同,則OF=1;相同,則OF=0 ROL不帶CF的循環(huán)左移指令 ROL OPRD,1/CL OPRD向左移動1位或CL指定位,最高位移入CF,同時再移入最低位構成循環(huán)例:MOV AL,82HROL AL,1執(zhí)行結果:AL=05H,CF=1,OF=1ROR不
14、帶CF的循環(huán)右移指令 ROR OPRD,1/CL OPRD向右移動1位CL指定位,最低位移入CF,同時再移入最低高位構成循環(huán)例:MOV AL,82HROR AL,1執(zhí)行結果:AL=41H,OF=1,CF=0 RCL 帶CF的循環(huán)左移指令 RCL OPRD,1/CL OPRD連同CF一起向左移動1位或CL指定位,最高位進入CF,CF原來的值進入最后一位。 RCR 帶CF的循環(huán)右移指令 RCR OPRD,1/CL OPED連同CF一起向右移動1位或CL 指定位,最低位進入CF,CF中原來的值進入最高位 4.1匯編語言源程序機器語言:計算機硬件系統(tǒng)唯一能夠直接理解和執(zhí)行的語言匯編語言:使用指令助記符
15、,符號地址,標號和偽指令等來書寫程序4.2偽指令 4.2.1數(shù)據(jù)定義偽指令 1格式:變量名 偽操作 操作數(shù) ,操作數(shù) 常用的數(shù)據(jù)定義偽指令有5種(1) DB:定義變量為字節(jié)類型。變量中的每個操作數(shù)都占一個字節(jié)(00FFH)。DB偽指令也常用來定義字符串。(2) DW:定義變量未字類型。DW偽指令后面每個操作數(shù)都占用2個字節(jié)。在內(nèi)存中存放是,低字節(jié)低地址,高字節(jié)高地址。(3) DD:定義雙字類型的變量。DD偽指令后面的每個操作數(shù)都占4個字節(jié)。在內(nèi)存中存放時,同樣是低字節(jié)低地址,高字節(jié)高地址。(4) DQ:定義四字類型的變量。(5) DT:定義十字節(jié)類型的變量。DT偽操作后面的每個操作數(shù)都為10個
16、字節(jié)的壓縮BCD數(shù)。 2. 操作數(shù) 操作數(shù)(大于等于一個):常數(shù),表達式或字符串 操作數(shù)的值不能超過由偽操作所定義的數(shù)據(jù)類型限定的范圍 例如:DB 操作數(shù)范圍:0255(無符號數(shù)) -128+127(有符號數(shù)) 字符和字符串都必須放在單引號中。 超過兩個字符的字符串只能用DB指令。 DATA DB 11H,33H NUM DW 100*5+88 STR DB HELLO! DATA2 DW ? ;為變量DATA2分配2個字節(jié)的空間,初始值為任意值。SUM DQ 0011223344556677H DATA2 DW 11H,22H,3344H由低到高存入 最下面的最高77H 00H66H 11H55H 00H44H 22H33H 44H22H 33H11H00HDATA1 DB 11H,2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45227-2025化工園區(qū)封閉管理系統(tǒng)技術要求
- GB/T 45126-2025鋼渣碳酸化固定二氧化碳含量的測定方法
- 出攤貨架轉讓合同范本
- 農(nóng)村田地征用合同范本
- 臨時股合同范本
- 代課老師合同范本
- 冰箱采購談判合同范本
- 半永久加盟合同范本
- 健身器合同范本
- 養(yǎng)殖鴿子合作合同范本
- 社團活動情況登記表
- 2025屆湖北武漢武昌區(qū)武漢大學附屬中學數(shù)學高三上期末達標測試試題含解析
- 山東省濰坊市2023-2024學年高二下學期期末測試+英語試卷
- 2023年北京市初三一模數(shù)學試題匯編:選擇壓軸(第8題)
- AIGC視域下非遺文創(chuàng)產(chǎn)品的數(shù)字化轉型升級路徑研究
- 生涯規(guī)劃與就業(yè)創(chuàng)業(yè)全套課件電子教案板
- 公司投資占股協(xié)議書模板
- 石油采油井場水土保持方案報告書
- 湘少版六年級英語下冊《全冊課件》
- 2024-2030年中國護眼臺燈行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 《土壤肥料學通論》課程教學大綱
評論
0/150
提交評論