版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、微機系統(tǒng)與接口技術匯編補充作業(yè)1. 尋址方式小結(jié)。請根據(jù)已填的格式,完成下面表中的空白部分:尋址方式操作數(shù)物理地址(PA)指令格式舉例立即尋址操作數(shù)由指令給出MOV DX, 100H; (DX)100寄存器尋址操作數(shù)在寄存器中MOV AX, BX; (AX)(BX)直接尋址操作數(shù)的有效地址由指令直接給出MOV AX, 1234H 寄存器間接尋址(BX)PA=(DS)16+(SI)(DI)或=(SS)16+(BP)MOV AX, BX MOV AX, SI MOV AX, DI MOV AX, BP 基址尋址PA=(DS) 16+(BX)+位移量 PA=(SS) 16+(BP)+位移量MOV A
2、X, BUFFBX MOV AX, BUFFBP 變址尋址PA=(DS) 16+(SI)+ 位移量 PA=(DS) 16+(DI)+ 位移量MOV AX, BUFFSI MOV AX, BUFFDI基址變址尋址PA=(DS) 16+(BX)+(SI) PA=(DS) 16+(BX)+(DI) PA=(SS) 16+(BP)+(SI) PA=(SS) 16+(BP)+(DI) MOV AX, BXSI MOV AX, BX+DI MOV AX, BPSI MOV AX, BP+DI 基址變址相對尋址PA=(DS)16+(BX)+(SI) +位移量 PA=(DS)16+(BX)+(DI)+位移量
3、PA=(SS)16+(BP)+(SI) +位移量 PA=(SS)16+(BP)+(DI)+位移量MOV AX, BUFFBXSI MOV AX, BUFFBX+DI MOV AX, BUFFBPSI MOV AX, BUFFBP+DI2.指出下列8088指令的錯誤:(1) MOV AH, BX(2) MOV BX, SI(3) MOV AX, SIDI(4) MOV MYDATBXSI, ES:AX(5) MOV BL, 1000(6) MOV CS, AX(7) MOV DS, BP(8) XLAT BX(9) IN AX, 0382H(10) OUT AX, 20H答:(1 )兩個操作數(shù)長
4、度不一致 (2 )兩個操作數(shù)不能都是存儲器操作數(shù) (3 )變址尋址方式不能使用兩個變址寄存器 (4 )寄存器尋址沒有段超越用法 (5 )兩個操作數(shù)長度不一致(或 1000 超出字節(jié)數(shù)據(jù)范圍) (6 )CS不能做目的寄存器(7)段寄存器只能由通用寄存器對其操作,BP不能對通用寄存器進行操作(8 )XLAT 中BX是隱含操作數(shù)(9 )IN指令中16 位端口地址要用 DX作為操作數(shù)(10)OUT指令兩個操作數(shù)反了3. 按要求編寫下面的程序段1) 利用移位指令計算DX=3AX7BX,假設為無符號數(shù)運算,無進位。2) 用邏輯運算指令實現(xiàn)數(shù)字09的ASCII碼與非壓縮BCD碼的互相轉(zhuǎn)換3) 把DX.AX中
5、的雙字右移4位4) 假設從4A00H:0000開始的4個字節(jié)中存放了4個非壓縮的BCD碼,現(xiàn)在按照低地址對低位,高地址對高位的原則,將他們合并到DX中。答:1)MOV CX, AX SHL AX, 1 ; AX*2 ADD AX, CX ; AX*3 MOV DX, BX MOV CL, 3 SHL DX, CL ; BX*8 SUB DX, BX ; BX*7 ADD DX, AX 2)MOV AL, 0 LOP: AND AL, 0FH INC AL CMP AL, : JNE LOP MOV AL, 0 LOP1: OR AL, 30H INC AL CMP AL, 0AH JNE LO
6、P1 3) MOV CL, 4 SHR AX,CL MOV BL, DL SHR DX, CL SHL BL, CL OR AH, BL 4)MOV AX, 4A00H MOV DS, AX MOV CL, 4 MOV SI, 0 MOV AL, SI AND AL, 0FH MOV DL, AL INC SI MOV AL, SI SHL AL, CL OR DL, AL INC SI MOV AL, SI AND AL, 0FH MOV DH, AL INC SI MOV AL, SI SHL AL, CL OR DH, AL4. 請說明下面兩段程序的功能1) mov si, 600hmo
7、v di, 601hmov ax, dsmov es, axmov cx, 256stdrep movsb 2) cldmov ax, 0fefhmov cx, 5mov bx, 3000hmov es, bxmov di, 2000hrep stosw答:1 )從DS:600H 開始將向低地址方向的256 字節(jié)向高地址移動一個字節(jié)位置。 2 )從3000:2000h 開始連續(xù)存放 5 個0fefh 5. 假設DS=2000H. BX=1256H, SI=528FH, 位移量TABLE=20A1H,232F7H=3280H, 264E5H=2450H, 試問執(zhí)行下列段內(nèi)間接尋址的轉(zhuǎn)移指令后,轉(zhuǎn)
8、移到有效地址是什么?i. JMP BXii. JMP TABLEBXiii. JMP BXSI答: (1)1256H (2)3280H (3)2450H 6. 判斷下列程序段跳轉(zhuǎn)到條件(1) XOR AX, 1E1EH JE EQUAL(2) TEST AL, 10000001B JNZ THERE(3) CMP CX, 64H JB THERE答:(1) (AX)=1E1EH (2) (AL) 的最高位和/ 或最低位為1 (3) (CX)64H 7. 如果條件跳轉(zhuǎn)指令的跳轉(zhuǎn)目標范圍超出128127的范圍,該如何處理?舉例說明。答:可以把跳轉(zhuǎn)條件做一些調(diào)整,利用無條件跳轉(zhuǎn)的跳轉(zhuǎn)范圍大,來達到目
9、的,如: CMP AX, 33 JE LONG ; 大于 127 字節(jié) LONG: 改為: CMP AX, 33 JNE SHOETER JMP LONG SHORTER:; 大于127 字節(jié) LONG:8. 按要求編寫下面的程序段1) 當DX高4位全為0時,使AX0,否則AX-1。2) 已知字符串string包含有256BYTE的內(nèi)容,將其中所有的$符號替換成空格( )。3) 所謂回文字符串是指一個字符串正讀和倒讀都是一樣的,例如字符串ABCDEFFEDCBA就是一個回文字符串,而字符串ABCFDDCAB就不是回文字符串?,F(xiàn)在有一個字符串string,包含有16個字節(jié)的內(nèi)容,請編寫程序段,判
10、斷該字符串是否為回文字符串。4) 統(tǒng)計以$字符結(jié)束的字符串string的字符個數(shù)。答: 1 ) TEST DX, 0F0H JZ OK1 XOR AX, AX JMP OK2 OK1:MOV AX, -1 Ok2: 2 ) MOV CX, 256 MOV AL, $ MOV AH, LEA BX, string LP: CMP BX, AL JNZ NEXT MOV BX, AH NEXT:INC BX DEC CX JNZ LP 3) LEA SI,string MOV DI, 15 ADD DI, SI LP: MOV AL, SI CMP AL, DI JNZ NO ; 不是回文 INC
11、 SI DEC DI CMP SI, DI JB LP ; 是回文 NO: ; 不是回文 4) MOV CX,0 ;放字符個數(shù) LEA SI, string LP: MOV AL, SI CMP AL, $ JE EXIT INC SI INC CX JMP LP EXIT:9. 設置CX0,則LOOP指令將執(zhí)行多少次?例如: mov cx, 0delay: loop delay答:將執(zhí)行65536 次10. 在下面程序段的括號中如果分別放上下面的指令(1) LOOP L20(2) LOOPNE L20(3) LOOPE L20 試說明,當程序執(zhí)行完時AX, BX, CX, DX四個寄存器的內(nèi)
12、容分別是什么? MOV AX, 01 MOV BX, 02 MOV CX, 03 MOV DX, 04L20: INC AX ADD BX, AX SHR DX, 1 ( ) RET答: (1 ) (AX)=4, (BX)=11, (CX)=0, (DX)=0 (2 ) (AX)=4, (BX)=11, (CX)=0, (DX)=0 (3 ) (AX)=2, (BX)=4, (CX)=2, (DX)=2 11. 下面兩條短轉(zhuǎn)移指令的轉(zhuǎn)移地址A10和A20分別是多少?(用16進制來表示)(1) 0110 EB F7 JMP A10(2) 0110 EB 09 JMP A20 指令地址(16進制)
13、 指令碼 匯編語句答: (1 )A10=0109H (2 )A20=011BH12. 按要求編寫下面的程序段1) 將ELEMS中的100個字節(jié)數(shù)據(jù)的位置顛倒過來(即第一個字節(jié)和第100個字節(jié)的內(nèi)容交換,第二個字節(jié)和第99個字節(jié)的內(nèi)容交換)。2) 有兩個3位的ASCII碼字串ASC1和ASC2定義如下: ASC1 DB 578 ASC2 DB 694 ASC3 DB 0000請編寫計算ASC3=ASC1+ASC2的程序段。3) 編寫四字節(jié)ASCII碼串3785與ASCII數(shù)碼5相乘的程序段。答:1 ) LEA SI, ELEMS MOV DI, SI ADD DI, 99 MOV CX,50 L
14、P : MOV AL, SI XCHG AL, DI XCHG AL, SI INC SI DEC DI DEC CX JNZ LP 2) CLC ; 清CF PUSHF LEA SI,ASC1+2 ; 從個位開始加,DB 578 等同于DB 5,7,8 LEA DI,ASC2+2 LEA BX,ASC3+3 MOV CX,3 ; 計算的數(shù)有位 A20: MOV AH,0 MOV AL,SI SUB AL,30H; ; ASCII碼轉(zhuǎn)BCD碼 MOV DL,DI SUB DL,30H ; ASCII 碼轉(zhuǎn)BCD碼 POPF ADC AL,DL AAA ; 非壓縮 BCD碼加法調(diào)整 PUSHF
15、ADD AL,30H ; BCD 碼轉(zhuǎn)ASCII 碼 MOV BX,AL DEC SI DEC DI DEC BX LOOP A20 POPF ADD AH,30H MOV BX,AH 3) MOV CX,4 LEA SI,MULCND+3 LEA DI,PRODUCT+4 AND MULPLR,0FH ; ASCII碼轉(zhuǎn)BCD碼 A30: MOV AL,SI AND AL,0FH ; ASCII碼轉(zhuǎn) BCD碼 MUL MULPLR AAM ; BCD碼乘調(diào)整 ADD AL,DI AAA ; BCD碼加法調(diào)整 OR AL,30H MOV DI,AL DEC DI MOV DI,AH DEC S
16、I LOOP A30 OR BYTE PTR DI,30H13. 請編寫完整程序在一個升序字節(jié)數(shù)組中查找數(shù)N,找到后將此數(shù)從數(shù)組中刪除,并使得CF=0;沒找到返回CF1。數(shù)組的首地址和末地址為A_HEAD和A_END。答: DATA SEGMENT PARA DATA A_HEAD DW ? BUFF DB 1,2,3,4,5,6,7,8,9,0 COUNT EQU $-BUFF A_END DW ? N DB 4 DATA ENDS CODE SEGMENT PARA CODE ASSUME CS:CODE, DS: DATA START: MOV AX,DATA MOV DS,AX MOV
17、 SI,OFFSET BUFF MOV A_HEAD,SI MOV AL,COUNT CBW ADD AX,SI MOV DI,AX DEC DI MOV A_END,DI MOV AL,N LP: CMP AL,SI JNE NEXT JMP DEL NEXT: INC SI ;考察下一個數(shù)據(jù) CMP SI,DI JBE LP ; 循環(huán) STC ;CF-1 JMP EXIT DEL: CLC ;CF-0 CMP SI,DI JNE DELDATA DEC A_END ; 刪除的是最后一個元素 JMP EXIT DELDATA:MOV CX,DI SUB CX,SI LP2: MOV AL,S
18、I+1 ; 該循環(huán)將SI+1 到DI位置的數(shù)據(jù)移動到 SI 到DI-1 的位置 MOV SI,AL INC SI LOOP LP2 DEC A_END ; 調(diào)整結(jié)尾指針 EXIT: MOV AH,4CH INT 21H CODE ENDS END START14. 請編寫完整程序從鍵盤讀取字符,如果是十進制的09則在屏幕上輸出該數(shù)的8位二進制碼,并將數(shù)字依次存放到BUF開頭的數(shù)組中,如果讀入的字符是Q或者q,則程序退出,其他情況在屏幕上打印“You must input 09, or q or Q”。(如輸入的字符是9,則輸出“00001001”)提示:語句“You must input 09, or q or Q”定義成以$結(jié)尾的字符串,鍵盤輸入和屏幕輸出,請參看教材后的DOS功能調(diào)用(int 21h)的相關功能。輸出一個數(shù)的2進制形式應該從最高位開始輸出,可以將此段程序定義成一個過程。答: ;You must input 09, or q or Q。 DATA SEGMENT PARA DATA sentence db You must input 09, or q or Q,$ buf db 20 dup(?) DATA ENDS CODE SEGMENT PARA CODE ASSUME CS:CODE
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度精裝修公寓托管租賃合同范本3篇
- 二零二五年度全新碼頭租賃合同及岸線使用權協(xié)議3篇
- 二零二五年度合伙創(chuàng)辦主題餐廳合同文本3篇
- 二零二五年度農(nóng)村房屋買賣合同協(xié)議書(含農(nóng)村金融服務)2篇
- 二零二五年度農(nóng)機銷售與農(nóng)業(yè)標準化服務合同3篇
- 二零二五年度特色魚塘養(yǎng)殖基地經(jīng)營權轉(zhuǎn)讓合同
- 《導醫(yī)工作流程》課件
- 單位管理制度集合大全【人員管理篇】
- 單位管理制度集粹選集【人事管理篇】
- 單位管理制度匯編大全【員工管理】
- 教師管理培訓系統(tǒng)的設計與開發(fā)
- 2021年新高考語文Ⅰ卷真題現(xiàn)代文閱讀《石門陣》解析
- 老化測試記錄表
- 金屬齒形墊片安全操作規(guī)定
- (完整版)ABAQUS有限元分析實例詳解
- 區(qū)塊鏈技術與應用學習通課后章節(jié)答案期末考試題庫2023年
- 2023學年度廣東省廣州市天河區(qū)九年級(上)期末化學試卷(附詳解)
- 拍賣行業(yè)務管理制度拍賣行管理制度
- 焊接工序首件檢驗記錄表
- 七年級上學期期末考試歷史試卷及答案(人教版)
- 飲品創(chuàng)業(yè)項目計劃書
評論
0/150
提交評論