版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、指令系統(tǒng)程序設(shè)計舉例 例1:從存儲器中取數(shù)的基本方法執(zhí)行下列指令后, AX寄存器中的內(nèi)容是什么? TABLEDW10,20,30,40,50 ENTRY DW3 .MOV BX,OFFSET TABLE ;取數(shù)據(jù)串偏移地址ADD BX,ENTRY ;BX=BX+3MOV AX,BX ;物理地址=DS16+(BX)答案: (AX)=400AH14H1EH28H32H03HDS:TABLEDS:ENTRY此例中要注意: 1)TABLE 和ENTRY的標(biāo)號意義,這里為數(shù)據(jù)串的偏移地址的首地址。2)從存儲器中取數(shù)據(jù)必須要知道數(shù)據(jù)在那個段和它的偏移地址。3)得到偏移地址有兩條指令4)如果數(shù)據(jù)在ES或SS
2、段時,指令中段前綴的用法 如果數(shù)據(jù)串定義在ES段中 TABLEDW10,20,30,40,50 ENTRY DW3 .MOV BX,OFFSET TABLE ;取數(shù)據(jù)串偏移地址ADD BX, ES ENTRY ;BX=BX+3MOV AX, BX ;物理地址=ES16+(BX)答案: (AX)=400AH14H1EH28H32H03HES:TABLEES:ENTRY此例中要注意: 1)TABLE 和ENTRY的標(biāo)號在程序中只能出現(xiàn)一次,在段定義中已經(jīng)指明在ES段中。例2:在使用中容易出錯的指令用法指出下列指令的錯誤: MOV AH,BX ; 源、目的字長不一致 (2)MOV SI,BX ;源、
3、目的不能同時為存貯器尋址方式 (3)MOV AX,SIDI ;基址變址方式不能有 SI和DI的組合(4)MOV AX,BXBP ;基址變址方式不能有 BX和BP的組合(5)MOVBX,ES:AX ;AX不能作為基址寄存器使用,而且源、目的不能同時為存貯器尋址方式(6)MOV BYTE PTRBX,1000 ;1000超出一個字節(jié)的表數(shù)范圍(7)MOV AX,OFFSET SI ; OFFSET只用于標(biāo)號(8)MOV CS,AX;CS不能作為目的寄存器(9)MOV DS,BP ;段地址不能直接送入數(shù)據(jù)段寄存器例3: 推斷指令的執(zhí)行結(jié)果 DATA SEGMENTTABA DW1234HDATA E
4、NDS . MOV BX, TABALEABX, TABA請寫出上述兩條指令執(zhí)行后, BX寄存器中的內(nèi)容。答案:MOVBX,TABA ; 執(zhí)行后(BX)=1234H ,內(nèi)存中的數(shù)據(jù)LEABX,TABA ; 執(zhí)行后(BX)=OFFSET TABA,偏移地址34H12HXXXXXXXXDS:TABA例4 多字節(jié)加法的程序設(shè)計變量DATAX和DATAY定義如下: DATAX DW 0148H DW 2316H DATAY DW 0237H DW 4052H按下述要求寫出指令序列: DATAX和DATAY中的兩個字?jǐn)?shù)據(jù)相加, 和存放在DATAY和DATAY+2中。實現(xiàn)的運算為:2316 0148H+4
5、052 0237H=?MOV AX, DATAX ;取第一個要加數(shù)的低字ADDAX, DATAY ;與第二個數(shù)低字相加,結(jié)果在AX中MOV BX, DATAX+2 ;取第一個數(shù)要加的數(shù)的高字ADCBX, DATAY+2 ;與第二個數(shù)高字相加,結(jié)果在BX中MOV DATAY, AXMOV DATAY+2, BX ;保存和,注意地址為2個字節(jié)在編程時要考慮到低字相加后產(chǎn)生的進(jìn)位例5:乘法指令應(yīng)用(無符號)兩個16變量DATAY和DATAX定義如下: DATAY DW 0148H ;A DW 2316H ;B DATAX DW 0237H ;C DW 4052H ;D RESULT DW 12DUP
6、(0)按下述要求寫出指令序列:DATAY和DATAX兩個字相乘(用MUL)。 A B C D E F G H H G F E D C B A N N N N N N N N N M M M M M M M M M A A A A A A A A A B B B B B B B B B C C C C C C C C C D D D D D D D D D E E E E E E E E E F F F F F F F F FX X X X X X X X X X X X X X X X X A B C D E F G H H G F E D C B A N N N N N M M M M M
7、A A A A A B B B B B DX(0) AX(0) A B C D E F G H H G F E D C B A C C C C C D D D D D E E E E E F F F F F DX(1) AX(1) A B C D E F G H H G F E D C B A N N N N N M M M M M A A A A A B B B B B DX(2) AX(2) A B C D E F G H H G F E D C B A C C C C C D D D D D E E E E E F F F F F DX(3) AX(3) DX(0) AX(0) DX(1
8、) AX(1) DX(2) +AX(2) DX(3) AX(3) C1 字1 字0 + C2 + C1 字3 C2 字2字相乘后位相加的要求MOVAX,WORD PTR DATAX ;取乘數(shù)第一個字MOVBX,WORD PTR DATAY ;取被乘數(shù)第一個字MULBX;(AC)MOVRESULT,AX ;結(jié)果低字 AX(0)MOVRESULT+2,DX ;結(jié)果高字 DX(0) MOVAX,WORD PTR DATAX ;取乘數(shù)第一個字MOVAX,WORD PTR DATAY+2 ;取被乘數(shù)第二個字MULBX ;(AD) MOVRESULT+4,AX;結(jié)果低字 AX(1)MOVRESULT+6,
9、DX ;結(jié)果高字 DX(1) MOVAX,WORD PTR DATAX+2 ;取乘數(shù)第二個字MOVBX,WORD PTR DATAY ;取被乘數(shù)第一個字MULBX ;(BC)MOVRESULT+8,AX ;結(jié)果低字 AX(2)MOVRESULT+10,DX ;結(jié)果高字 DX(2) MOVAX,WORD PTR DATAX+2 ;取乘數(shù)第二個字MOVBX,WORD PTR DATAY+2 ;取被乘數(shù)第一個字MULBX ;(BD)MOVRESULT+12,AX;結(jié)果低字 AX(3)MOVRESULT+14,DX ;結(jié)果高字 DX(3)MOV AX,RESULT+2MOV BX,RESULT+4MO
10、V DX,RESULT+8ADDAX,BXADCAX,DX ;DX(0)+AX(1)+AX(2)MOV RESULT+2, AXMOV AX,RESULT+6MOV BX,RESULT+10MOV DX,RESULT+12ADCAX,BXADCAX,DX ;DX(1)+DX(2)+AX(3)MOV RESULT+4, AX MOVAX,RESULT14ADCAX,0000H ; DX(3)+CMOVRESULT6, AX例6:移位指令應(yīng)用試分析下面的程序段完成什么操作?MOVCL,04SHLDX,CL ;DX左移4位。左移次數(shù)CL中的數(shù)MOVBL,AH SHLAX,CL ; AX左移4位SHR
11、BL,CL ; BL右移4位答案: 將DX、AX中的字左移4位, BL右移4位例7:變量N1和N2均為2字節(jié)的非壓縮BCD數(shù)碼,請寫出計算N1與N2之差的指令序列。非壓縮BCD碼格式:0000XXXXHMOV AX, 0 ;(MOV AH,00H)AX高8位清0 MOV AL, N1 ;取個位數(shù)SUBAL, N2 ;個位減AAS ;非壓縮的BCD數(shù)的減法結(jié)果進(jìn)行調(diào)整MOV DL, AL ;將正確結(jié)果保存在DL中MOV AL, N1+1 ;取十位數(shù)SBCAL, N2+2 ;十位減,考慮個位有借位AAS ;非壓縮的BCD數(shù)的減法結(jié)果進(jìn)行調(diào)整MOV DH, AL ;將正確結(jié)果保存在DH中 例8:假設(shè)
12、(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H,(25060)=00B0H,(SP)=0FFFEH, (CF)=1, (DF)=1, 請寫出下列各條指令單獨執(zhí)行完后, 有關(guān)寄存器及存儲單元的內(nèi)容, 若影響條件碼請給出條件碼SF、ZF、OF、CF的值。SBB AX,BX ;2060H-3000H(1)(AX)=F05FH,
13、(SF)=1, (ZF)=0, (OF)=0, (CF)=1 假設(shè)(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 請寫出下列各條指令單獨執(zhí)行完后, 有關(guān)寄存器及存儲單元的內(nèi)容, 若影響條件碼請給出條件碼SF、ZF、OF、CF的值。(2
14、) CMPAX,WORD PTRSI+0FA0H;2060H-A006H目的操作數(shù)的地址:DS16+SI+0FA0H =40000H+2060+0FA0=43000H執(zhí)行此指令后AX中的內(nèi)容不變!只影響標(biāo)志位!2060H-A006H 0010 0000 0110 0000 -1010 0000 0000 0110 0010 0000 0110 0000 +0101 1111 1111 1010 1000 0000 0101 1010結(jié)果:(SF)=1, (ZF)=0, (OF)=1, (CF)=1OF=1 兩數(shù)符號相反(正數(shù)-負(fù)數(shù)、或負(fù)數(shù)-正數(shù)),而結(jié)果符號與減數(shù)相同。OF=0 同符號數(shù)相減時
15、或不同符號數(shù)相減,而結(jié)果符號與減數(shù)不相同。 假設(shè)(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 請寫出下列各條指令單獨執(zhí)行完后, 有關(guān)寄存器及存儲單元的內(nèi)容, 若影響條件碼請給出條件碼SF、ZF、OF、CF的值。(3) MULBYTE
16、 PTRBX ;字或字節(jié)由源決定 (AX)=0260H, (OF)=1, (CF)=1MULBYTE PTRBX目的操作數(shù)的地址:DS16+(BX) =40000H+3000=43000H (43000H)=A006H此操作為:60H06H=0240H (AX)=0240H, (OF)=1, (CF)=1乘法指令運算結(jié)果影響狀態(tài)標(biāo)志,但對CF、OF有特殊的定義。 當(dāng)乘積的高半部分為0(AH=0或DX(高位)=0)時,CF=0、OF=0,表示高半部分無有效數(shù),否則CF=1、OF=1,用于指出字節(jié)運算結(jié)果是8位或16位,字運算結(jié)果是16位或32位。(不存在有進(jìn)位的可能) 假設(shè)(CS)=3000H,
17、 (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 請寫出下列各條指令單獨執(zhí)行完后, 有關(guān)寄存器及存儲單元的內(nèi)容, 若影響條件碼請給出條件碼SF、ZF、OF、CF的值。(4) DIVBH;AX/BL(2060H30H) (AX)=2060H(4) DIVBH;
18、AX/BL(2060H30H) (AX)=2060H AL=商,AH=余數(shù)2060H=40962+96=8288 828848=172 余數(shù)=32除法不影響標(biāo)志位 假設(shè)(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 請寫出下列各條指令
19、單獨執(zhí)行完后, 有關(guān)寄存器及存儲單元的內(nèi)容, 若影響條件碼請給出條件碼SF、ZF、OF、CF的值。(5) SARAX,CL ;算術(shù)右移5次(AX)=0103H, (CF)=0 2060H=0010 0000 0110 0000B 0000 0001 0000 0011 B 00000B 假設(shè) (AX)=2060H, 請寫出下列各條指令單獨執(zhí)行完后, 有關(guān)寄存器及存儲單元的內(nèi)容, 若影響條件碼請給出條件碼SF、ZF、OF、CF的值。(6) XORAX,0FFE7H 0010 0000 0110 0000B 1111 1111 1110 0111B 1101 1111 1000 0111B(AX)=0DF87H, (CF)=0, (OF)=0, (SF)=1, (ZF)=0相當(dāng)于對AX的內(nèi)容求反 假設(shè) (DS)=4000H, (ES)=2000H, (AX)=2060H, (BX)=3000H, (SI)=2060H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, 請寫出下列各條指令單獨執(zhí)行完后, 有關(guān)寄存器及存儲單元的內(nèi)容, 若影響條件碼請給出條件碼SF、ZF、OF、
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管井房電纜改造合同
- 廣告導(dǎo)演聘用合同
- 合同標(biāo)準(zhǔn)質(zhì)量范文
- 犬耳螨的診斷與治療
- 2024正規(guī)廠房租賃合同書
- 煤礦安全規(guī)程
- 2024設(shè)備改造的合同范本
- 2024專賣店申請加盟合同模板
- 2024家庭裝修全包合同
- 專題06課文理解與填空-2022-2023學(xué)年四年級語文上冊期末復(fù)習(xí)知識點精講精練(部編版)
- 上海市市轄區(qū)(2024年-2025年小學(xué)四年級語文)部編版期末考試(下學(xué)期)試卷及答案
- 認(rèn)識梯形(課件)四年級上冊人教版
- 企業(yè)級SaaS軟件服務(wù)合同
- 【期中考后反思】《反躬自省,砥礪奮進(jìn)》-2022-2023學(xué)年初中主題班會課件
- 2019新教材人教版生物必修1教材課后習(xí)題答案
- 2024年中國白酒行業(yè)數(shù)字化轉(zhuǎn)型研究報告-36氪-202409
- 《學(xué)校主人公:3 校園廣播站》教學(xué)設(shè)計-2024-2025學(xué)年五年級上冊綜合實踐活動滬科黔科版
- 外傷急救包扎技術(shù)說課課件
- 人教版(2024新版)七年級上冊英語全冊語法知識點講義
- 全國青島版信息技術(shù)七年級下冊專題一第8課三、《高級統(tǒng)計-數(shù)據(jù)透視表》教學(xué)設(shè)計
- 內(nèi)分泌科品管圈成果匯報提高糖尿病患者健康教育知曉率
評論
0/150
提交評論