




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、微機系統(tǒng)與匯編語言學習資料課件第一章 微型計算機概述1 、微型計算機(MC,Microcomputer)是有哪些部件構成的?答:由MP、存儲器、輸入/輸出接口電路和系統(tǒng)總線構成。2、微型計算機系統(tǒng)(MCS,Microcomputer System)是有哪些部分構成的?答:微型計算機系統(tǒng)是以微型計算機為主體,配上軟件系統(tǒng)和外部設備而構成的。第二章 計算機中的數(shù)據(jù)表示1 58的非壓縮BCD和壓縮BCD各如何表示?寫出存入DX的指令。答: 58的非壓縮BCD 是0508H存入DX的指令:MOV DX,0508H 58的非壓縮BCD和是 58H存入DX的指令:MOV DX,0058H2、什么是ASCI
2、I碼?可表示哪些信息?按其作用可分為哪些?答:ASCII碼是美國信息交換標準代碼的簡稱,用于給西文字符編碼。包括英文字母的大小寫、數(shù)字、專用字符、控制字符等;按其作用可分為:34個控制字符;10個阿拉伯數(shù)字52個英文大小寫字母;32個專用符號第三章 80X86微處理器及其體系結構1、 8086 CPU信號線 RESET的功能是什么? 8086復位后內部寄存器狀態(tài)是怎樣的?8086CPU復位后從 什么單元中取第一條指令執(zhí)行。答:RESET復位信號輸入 8086復位后CS=FFFFH、DS=0000H、 ES=0000H、SS=0000H、IP=0000H、FR=0000H8086CPU復位后從C
3、S*10H+IP=FFFFH*10H+0000H=FFFF0H地址單元中取第一條指令執(zhí)行啟動系統(tǒng)。 CS:IP=FFFF:0000H 6、INTA 是什么引腳?答:中斷響應引腳7、M/IO 是什么引腳?答:存儲器訪問/輸入輸出訪問控制引腳 8、8086CPU最小、最大方式時用于總線請求、允許的信號線各是什么?答:最?。篐OLD-總線請求 HLDA-總線響應 最大:RQ/GT0、RQ/GT19、8086 CPU訪問存貯器和訪問I/O的地址分別各為什么?可尋址的最大存貯器空間和最大I/O空間分別各為多少?答:8086 CPU訪問存貯器的地址是A19A0,可尋址的最大存貯器空間是1MB.8086 C
4、PU訪問I/O的地址是A15A0,可尋址的最大I/O空間是64KB.10、什么是邏輯地址?什么是物理地址?它們各自如何表示?如何轉換?答:程序中使用的存儲器地址稱為邏輯地址,由16位“段基址”和16位“偏移地址”(段內地址)組成。段基址表示一個段的起始地址的高16位。偏移地址表示段內的一個單元距離段開始位置的距離。訪問存儲器的實際地址稱為物理地址,用20位二進制表示。將兩個16位二進制表示的邏輯地址錯位相加,可以得到20位的物理地址:物理地址段基址16 + 偏移地址11、物理地址4ACD9H的邏輯地址可以是哪些?答:4A00:0CD9 、4500:5CD9、4A88:0459 等12、8086
5、 CPU輸入輸出指令的間址寄存器是什么?答: DX13、8086 CPU 寄存器BX、BP 、AX、各是什么功能的寄存器?答:BX、BP-基址寄存器 AX-累加器14、標志寄存器FR多少位?有哪些標志?答 :FR是一個16位的寄存器,共9個標志.其中6個用作狀態(tài)標志CF、PF、AF、ZF、SF、OF3個用作控制標志DF、IF、TF.(1)進位標志CF-反映運算結果向更高位是否有進/借位,加減運算后有進位/借位時CF = 1,否則CF = 0CF標志的用途: 用于運算時的進/借位。 用于無符號數(shù)運算后判定是否有溢出。 用于移位操作時接收移出的信息位.(2)奇偶校驗標志PF:反映運算結果低八位中“
6、1”的個數(shù)為奇或者為偶,其值為1表示運算結果的低8位中1的個數(shù)為偶數(shù),否則為奇數(shù)。 PF標志可用于數(shù)據(jù)傳送后的奇偶校驗。 (3)輔助進位標志AF-反映運算后的結果是否有半進位/借位,其值為1表示運算中低4位向高4位有進位或借位,否則無進位或借位。 AF在BCD碼運算(8位)時可用作十進制調整的條件。(4)零標志ZF-反映運算結果是否為零,其值為1表示運算結果為0,否則非0。 ZF可用于判定二個數(shù)是否相等,相等的時候它們相減的結果為零。 ZF還可用作計數(shù)器的計數(shù)次數(shù)是否減為0,當減為0的時候表示計數(shù)到,例如:循環(huán)次數(shù)計數(shù)(5)符號標志SF:反映運算結果是否為負,其值為1表示運算結果為負數(shù),否則為
7、正數(shù)。SF在有符號數(shù)運算時才有意義。SF也可在無符號數(shù)比較大小時判定兩個數(shù)的大小,A、B兩個數(shù)相減后結果SF=0,AB, SF=1,AB;SF還在有符號數(shù)比較大小時與OF標志一起判定兩個數(shù)的大小。(6)溢出標志OF:反映有符號數(shù)運算后的結果是否有溢出,其值為1表示帶符號數(shù)運算結果溢出,否則無溢出。有符號數(shù)運算時: 正數(shù)加正數(shù)結果為正-無溢出;結果為負-有溢出 負數(shù)加負數(shù)結果為負-無溢出;結果為正-有溢出 正數(shù)加負數(shù)或負數(shù)加正數(shù)- 無溢出 OF SF 可以用于判有符號數(shù)比較大小以上的6個狀態(tài)標志在運算指令運算后由EU自動的設置在FR中(CF也可以直接用指令設置),常用作指令的轉移或執(zhí)行的控制條件
8、,影響或控制后續(xù)指令的執(zhí)行,特別是CF、ZF、OF、SF。CPU的不同指令對狀態(tài)標志的影響是不一樣的,有的指令執(zhí)行后全部影響6個標志,有的影響部分,不影響的保持原態(tài),也有的一個都不影響,對不影響的指令執(zhí)行后就不可以使用條件轉移指令??刂茦酥荆海?)方向標志DF:用于串操作時設置串指針的修改方向, = 0,串指針增量變化,= 1,串指針減量變化(2)中斷允許標志IF:設置是否允許CPU響應外部的可屏蔽中斷請求INTR, ,= 0,關中斷,= 1,開中斷(3)陷阱標志TF:用于設置CPU運行為單條執(zhí)行指令的方式, = 0,正常執(zhí)行程序,= 1,單步執(zhí)行程序第四章 尋址方式與指令系統(tǒng)1、下列指令的源
9、操作數(shù)段基址各是什么段寄存器?(1)MOVAX, BPSI 答:SS(2)MOVAX, CS:8DI 答:CS (3) MOVAX, BXDI 答:DS (4) MOVAX, ES:10BPSI 答:ES2、8086允許段超越和禁止段超越操作各有哪些?答:允許段超越的有:以BP為基址存取操作數(shù)取源串數(shù)據(jù)cs段數(shù)據(jù)訪問等禁止段超越的是:取指令存目的串 堆棧操作push/pop3已知DS5000H,SS2500H,BP0200H,SI=1000H,傳送指令MOV AX,BP+SI源操作數(shù)的尋址方式什么方式?物理地址是多少?答:源操作數(shù)的尋址方式是:基址變址 物理地址= 26200H 4、若DS=4
10、500H,DI=1000H,COUNT=A8H,指令MOV AX,DI+COUNT中,源操作數(shù)的有效地址EA和物理地址各為多少?答:有效地址EA為10A8H 物理地址為460A8H 5、8086 CPU 有哪幾種數(shù)據(jù)尋址方式,掌握數(shù)據(jù)各種尋址方式的尋址過程,要求會求指令的尋址方式?會求有效地址EA=?會求物理地址=?答:指令的物理地址=CS*10H+IP堆棧棧頂物理地址=SS*10H+SP源串物理地址=DS*10H+SI,目的串物理地址=ES*10H+DI數(shù)據(jù)直接尋址: MOV AL , 1000H; EA=1000H ,物理地址=DS*10H+1000H寄存器間接尋址:MOV AL , BX
11、或SI或DI ;EA=BX或SI或DI,物理地址=DS*10H+ BX或SI或DI基址尋址:MOV AL , DISPBX ;EA=BX+DISP,物理地址=DS*10H+ BX+DISPMOV AL , DISPBP ; EA=BP+DISP,物理地址=SS*10H+ BP+DISP基址變址尋址:MOV AL , BX+SI或DI ; EA=BX+ SI或DI,物理地址=DS*10H+ BX+ SI或DIMOV AL , BP+SI或DI ; EA=BP+ SI或DI,物理地址=SS*10H+ BP+ SI或DI變址尋址:MOV AL , DISPSI ; EA=SI+DISP,物理地址=D
12、S*10H+ SI+DISPMOV AL , DISPDI ; EA=DI+DISP,物理地址=DS*10H+ DI+DISP相對基址變址尋址:MOV AL ,DISP BX+SI或DI ; EA=BX+ SI或DI+DISP,物理地址=DS*10H+ BX+ SI或DI+DISPMOV AL , DISP BP +SI或DI ; EA=BP+ SI或DI+DISP,物理地址=SS*10H+ BP+ SI或DI+DISP6、8086 CPU 有哪幾種轉移尋址方式,段內、段間轉移有何不同?掌握轉移各種尋址方式的尋址過程。答:與轉移地址有關的尋址方式:段內相對尋址、段內間接尋址、段間直接尋址、段間
13、間接尋址。段內相對尋址:段內短轉(short)轉移偏移地址=IP+disp 8段內近轉(near)轉移偏移地址=IP+disp 16段內間接尋址:寄存器間接轉移的偏移地址= reg (reg為AX、BX、CX、DX、SP、BP、SI、DI)存儲器間接轉移的偏移地址= (EA) (EA為數(shù)據(jù)尋址方式尋址單元,為字單元)例:已知BX=3500H,DS=2000H.(23500H)=4500H, (23502H)=2000H JMP BX; 段內寄存器間接,IP=3500HJMP WORD PTRBX; 段內存儲器間接,IP=(2000H*10H+3500H)=4500H段間直接轉:JMP FAR
14、PTR L: IP=轉移指令的第2、3字節(jié)CS=轉移指令的第4、5字節(jié)段間存儲器間接轉:JMP DWORD PTR BX : IP=(2000H*10H+3500H)=4500HCS=(2000H*10H+3500H+2)=2000H7、數(shù)據(jù)傳送指令(MOV)使用有哪些規(guī)定?答:允許regreg 例:MOV AX,BX 允許regmem 例:MOV AX,BX 允許regdata 例:MOV AX,2500H 允許regsreg 例:MOV AX,CS 允許memreg 例:MOV BX, AX 允許memdata 例:MOV BX,2500H 允許memsreg 例:MOV BX,CS 允許
15、sregreg(除CS外) 例:MOV DS,BX不允許:memmem 例:MOV Y,BX 例:MOV SI,BX不允許sregdata 例:MOV DS,2500H不允許sregsreg 例:MOV DS,CS不允許CS做目的寄存器 例:MOV CS,BX注意數(shù)據(jù)類型匹配 例:MOV DL,BX8、數(shù)據(jù)尋址有哪些情況不允許?解:例如MOV DI,BX ;錯,存儲器不能傳存儲器MOVDX+SI,AL; 錯,DX不能用作基址尋址MOVSI+DI,AL; 錯,SI+DI不能用作變址尋址MOVBX+BP,AL; 錯,BX+BP不能用作基址尋址MOV WORD PTR BX,-1 ;正確 MOV A
16、L,BX;錯,類型不匹配MOV DS,SEG DAT;錯,立即數(shù)不能送段寄存器PUSH 1234H ; 錯,不能用立即數(shù)MUL AL , 58H ;錯,不能用立即數(shù)9、不能采用立即數(shù)尋址方式的指令有哪些?答:PUSH 1234H ; 錯,不能用立即數(shù) MUL 58H ;錯,不能用立即數(shù) DIV 58H ;錯,不能用立即數(shù)10、掌握8086CPU以下指令: MOV、PUSH/POP、LEA、ADD、ADC、SUB、SBB、INC、DEC、NEG、CMP、 DAA、MUL、DIV、AND、OR、NOT、XOR、SHL、SHR、 SAL、SAR、ROL、ROR、RCL、RCR、MOVS、CMPS、S
17、TOS、LODS、SCAS、 REP、條件轉移類、LOOP、CALL、RET、CLD、STD對給出的指令,要求會分析指令是否正確。第五章 偽指令及匯編語言程序結構1PTR運算符有何功能?答:可以重新指定存儲器操作數(shù)的類型,可以重新指定轉移指令的轉移類型。2、存儲器數(shù)據(jù)類型有什么要求,如何解決類型不確定?答:存儲器數(shù)據(jù)類型要求類型匹配,用PTR可以說明和重新指定變量或標號的類型滿足類型匹配。例如:INC BX-類型不確定正確的寫法: INC BYTE PTR BX-字節(jié)類型INC WORD PTR BX-字類型例如:X DW 1234H-字屬性 MOV AL , X-類型錯誤正確的寫法: MOV
18、 AL , BYTE PTR X ; AL=34H3要求會求數(shù)組最后一個字、字節(jié)的存儲地址是多少。答:數(shù)組最后一個字的地址= 數(shù)組的首地址+(數(shù)據(jù)個數(shù)-1)*2數(shù)組最后一個字節(jié)的地址= 數(shù)組的首地址+(數(shù)據(jù)個數(shù)-1)4、已知BUF偏移地址為58ADH,定義BUF DW 20DUP(?)后,該數(shù)組最后一個字數(shù)據(jù)的偏移地址是多少?答:數(shù)組最后一個字數(shù)據(jù)的偏移地址= 58ADH +(14H-1)*2H=58D3H。5、已知BUF偏移地址為25DBH,定義BUF DB 50DUP(?)后,該數(shù)組最后一個字節(jié)的偏移地址是多少?答:數(shù)組最后一個字節(jié)的偏移地址= 25DBH +(32H-1) = 260CH
19、6、掌握匯編語言程序的編程格式-段定義、段說明、段結束、返回DOS。DATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART : . .MOV AH,4CHINT 21HCODE ENDS END START 7、掌握匯編語言中常量有哪些?舉例。答:常量有: 二進制:10001101B 十進制:2532D、-256D、2536十六進制:2532H、0FAC8H、 ABCDH-0ABCDH 字符常量:A 用EQU定義的常量:ABC EQU 208、掌握匯編語言中變量的屬性和數(shù)據(jù)的類型。答:變量的屬性包括有: 段地址、偏移地址、類型屬
20、性(字節(jié)BYTE、字WORD、雙字DWORD)9、掌握匯編語言中標號的屬性。答:標號的屬性包括有:段地址、偏移地址、類型屬性(段內NEAR、段間FAR)10、掌握匯編語言中數(shù)據(jù)定義語句。舉例。答: 字節(jié)定義:A1 DB 25 字定義: A2 DW 1234H雙字定義: A3 DD 12345678H 8字節(jié)定義DQ10字節(jié)定義 DT11、匯編語言組成標識符的字符及規(guī)則是怎樣的? 答: ( 1 ) 組成標識符的字符有: 英文大寫字母:AZ; 英文小寫字母: a-z; 數(shù)字09; 字符?、_ 、$;( 2 )字符長度不超過3l個; ( 3 ) 首字符不能是數(shù)字; ( 4 ) ? 不能單獨作為一個標
21、識符; ( 5 ) 不能把保留字用作標識符,保留字包括助記符、寄存器名等。12、什么是8086匯編語言名字?包括有哪些?有何特點?程序中用到的名字有何特點?答:名字是程序員在編程中按標識符規(guī)定命名的,目的是方便編程和讀程。名字包括文件名、標題名、段名、過程名和符號常量名等。程序中用到的名字:( 1 ) 段名:在段定義語句中命名取定,定義后的段名可以作為段基值來使用,用來對段寄存器賦值。( 2 ) 過程名:在過程定義語句中定義,指向過程中第一條指令所在的內存單元的地址,即過程的入口地址,有NEAR和FAR之分。( 3 ) 符號常量名:由符號定義語句EQU、=來定義,對符號常量給以賦值。第六章 匯
22、編語言程序設計1、已知AX=836BH,X=FFFFH,執(zhí)行“CMPAX, X”后,標志位ZF、CF、OF、SF=?答: 0101 1000 0011 0110 1011+ 0000 0000 0000 0001 1000 0011 0110 1100ZF=0(結果非0) CF=1(有借位)OF=0(無溢出) SF=1(結果為負) 2設SP=2000H,AX=8A95H,DI=A000H。請寫出下列指令執(zhí)行后指定寄存器和標志位的值。ADD AX,DI ;PUSH AX ;POP DI ;答: ADD AX,DI ;AX =2A95H ,CF=1 PUSH AX ;SP = 1FFEH POP
23、DI ;DI = 2A95H 3、查表程序如下,分析該程序寫出程序執(zhí)行后的結果。DATA SEGMENTTABLE DW 0,1,4,9,16,25,36,49,64,81,100, 121, 144,169,196,225,256,289,324,361,400 X DB 17 ; Y DW ? ;DATA ENDS;定義代碼段CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX; MOV BX,OFFSET TABLE; MOV AL,X ; MOV AH,0; SHL AX , 1 ;AX=34 ADD BX,AX
24、 MOV AX,BX; MOV Y,AX ; MOV AH,4CH INT 21H ; CODE ENDS END START答: Y=289或 91H4、查表程序如下,分析該寫出程序執(zhí)行后的結果。DATA SEGMENTTABLE DB 0,1,4,9,16,25,36,49,64,81,100, 121, 144,169,196,225; X DB 14 ; Y DB ? ;DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX; MOV BX,OFFSET TABLE MOV AL,X ; MOV
25、AH,0; ADD BX , AX MOV AL , BX MOV Y,AL ; MOV AH,4CH INT 21H ; CODE ENDS END START答: Y=196或C4H 5分析下列程序段每條指令的執(zhí)行結果和程序實現(xiàn)的功能? X DW 10 MOV AX,X SAL AX,1 MOV BX ,AX SAL AX , 1 ADD AX , BX ADD AX , X RET 答: X DW 10 MOV AX,X ;AX=X SAL AX,1 ; AX=2X MOV BX ,AX ; BX=2X SAL AX , 1 ; AX=4X ADD AX , BX ; AX=6X ADD
26、 AX , X ; AX=7X執(zhí)行后的結果AX=46H或70,實現(xiàn)了 X 7的功能。 6分析下列程序段每條指令的執(zhí)行結果和程序實現(xiàn)的功能? X DB 10 MOV AL,X SAL AL,1 MOV BL,AL SAL AL, 1 SAL AL,1 ADD AL,BL 答:X DB 10 MOV AL,X ;AL=X SAL AL,1 ;AL=2X MOV BL,AL ; BL=2X SAL AL, 1 ; AL=4X SAL AL,1 ; AL=8X ADD AL,BL ; AL=10X 執(zhí)行后的結果AL=64H或100,實現(xiàn)了 X 10的功能。 7、已知DS=5000H,BX=2500H,
27、 DI=6000H (58500H)=D456H,CX=0004H,CF=1指令SAR BXDI , CL 、指令RCL BYTE PTRBXDI , 1執(zhí)行后的結果各是什么?答:指令SAR BXDI , CL 執(zhí)行后的結果是:物理地址=DS*10H+BX+DI=58500H執(zhí)行前:(58500H) = D456H;執(zhí)行后: (58500H) = FD45H;指令RCL BYTE PTRBXDI , 1 執(zhí)行后的結果是:(58500H) = ADH 0101 0110 CF=1 1010 1101 CF=0物理地址=DS*10H+BX+DI=58500H執(zhí)行前:(58500H) = 56H;C
28、F=1執(zhí)行后: (58500H) = ADH8、已知DS=5000H,BX=2500H, DI=6000H (58500H)=C456H,CX=0004H,指令SAR BXDI , CL 、指令SHR BXDI , CL執(zhí)行后的結果各是什么?答:指令SAR BXDI , CL執(zhí)行后的結果各是(58500H) = FC45H ;指令SHR BXDI , CL 執(zhí)行后的結果是:(58500H) = 0C45H9、掌握補碼計算X+Y和X-Y。并可寫出計算后的真值及標志位CF、OF、ZF、SF、PF各為多少?例如:X=-45 ,Y=-34, 用補碼計算X+Y和X-Y。 解: X=-45=-010110
29、1 X補=1101 0011 Y=-34=-0100010 Y補=1101 1110 -Y補=0010 0010 求X+Y補: X補=1101 0011 +Y補=1101 1110 1 1011 0001 = -100 1111= -79 CF=1(有進位) ZF=0(結果非0) SF=1(結果為負) OF=0(結果無溢出) PF=1(偶數(shù)個1)求X-Y補: X補=1101 0011 +-Y補=0010 0010 0 1111 0101 = -000 1011= -11 CF=0=1(有借位) ZF=0(結果非0) SF=1(結果為負) OF=0(結果無溢出)PF=1(偶數(shù)個1)10、設AX=
30、865AH,BX=CB75H,則指令“ADD AX,BX”執(zhí)行后,產(chǎn)生的標志位是怎樣的?解: 1000 0110 0101 1010 + 1100 1011 0111 0101 1 0101 0001 1100 1111CF=1(有進位) SF=0(結果為正) ZF=0 (結果非零) OF=1 (結果有溢出)AF=0(無進借位) PF=1(偶數(shù)個1)11、判斷下列指令是否正確。若不正確,指出錯誤原因。(1)MOVSI, DL (2)MOVES, 1000H(3)LEAAX, 3006H (4)MOVBPDI, 0 (5)MOVSI, DI(6)MOV DI,BX (7)MOV DX+SI,AL
31、(8)MUL AL , 58H (9)MOV DS,SEG DAT (10)MOV WORD PTR BX,-1 答:(1)指令MOV SI, DL是錯誤的,兩個操作數(shù)類型不匹配。(2)指令MOV ES, 1000H是錯誤的,裝載段寄存器時,源操作數(shù)不能為立即數(shù)。(3)指令LEAAX, 3006H是錯誤的,LEA指令的源操作數(shù)必須為內存操作數(shù)。(4)指令MOVBPDI, 0是錯誤的,操作數(shù)類型無法確定。(5)指令MOVSI, DI 是錯誤的,不能同時出現(xiàn)兩個內存操作數(shù)。 (6)MOV DI,BX ;錯,存儲器不能傳存儲器(7)MOVDX+SI,AL; 錯,DX不能用作基址尋址(8)MUL AL
32、 , 58H ;錯,乘法指令不能用立即數(shù)(9)MOV DS,SEG DAT;錯,立即數(shù)不能送段寄存器(10)MOV WORD PTR BX,-1 ;正確 ,-1送BX指示的字單元12、8086允許段超越和禁止段超越操作各有哪些?。答:允許段超越的有:以BP為基址存取操作數(shù)、通用數(shù)據(jù)存取(用BX、BP、SI、DI、直接尋址的內存訪問)(MOV AL,SS:SI )、字符串指令的源數(shù)據(jù)串(DS:SI) 操作(LOAD )、cs段數(shù)據(jù)訪問(MOV AL,CS:BP+5)等。禁止段超越的是:取指令的指令地址(CS:IP )、字符串指令的目的數(shù)據(jù)串(ES:DI) 操作(STOS)、堆棧操作(push/p
33、op)第七章 分支結構程序設計18086 CPU條件轉移指令和SHORT的轉移范圍為多少? JMP L的轉移的范圍為多少? 答:條件轉移指令和SHORT的轉移范圍為 -128+127JMP L的轉移的范圍為: -32768- +327672、指令JMP FAR PTR LOP和“JMP DWORD PTR DI”的功能有何異同?答:上述兩條指令都是段間遠轉移指令,但是偏移地址的來源不同。指令JMP FAR PTR LOP執(zhí)行時,目的的偏移地址在轉移指令第2、3字節(jié)中,段地址在轉移指令第4、5字節(jié)中。指令“JMP DWORD PTR DI”時,目的偏移地址在存儲單元DS: DI中,目的段地址在存
34、儲單元DS: DI+2中。3、指令“JMP BX”和“JMP WORD PTR BX”的功能有何異同?答:上述兩條指令都是段內近轉移指令,但是偏移地址的來源不同。指令“JMPBX”執(zhí)行時,新的偏移地址在BX寄存器內?!癑MP WORD PTR BX”時,目的偏移地址在存儲單元中,該存儲單元的地址在DS: BX中。4、已知CS=5000H,DS=6000H,BX=4500H,(64500H)=7500H,(64502H)=4600H,指令JMP DWORD PTR BX 、指令JMP WORD PTR BX 執(zhí)行后程序的轉移地址各是多少?答:指令JMP DWORD PTR BX執(zhí)行后程序的轉移地
35、址是CS=4600H ,IP= 7500H。物理地址=DS*10H+BX=64500H(雙字)(64500H)=7500HIP,IP=7500H(64502H)=4600HCS,CS=4600H指令JMP WORD PTR BX 執(zhí)行后程序的轉移地址是CS=5000H ,IP=7500H。物理地址=DS*10H+BX=64500H(字)(64500H)=7500HIP,IP=7500HCS=5000H(不變)5、已知AX=0C046H , BX=8FC2H,分析下列程序每條指令的執(zhí)行結果?寫出程序執(zhí)行后轉移到什么標號執(zhí)行。 ADD AX , BX ; JNO L1 ; JNC L2 ; JMP
36、 L3 ; 答:ADD AX , BX ; AX=C046H+8FC2H=5008H ; OF=1 ,CF=1 JNO L1 ; OF=1 ,不轉L1 JNC L2 ; CF=1,不轉L2 JMP L3 ; 轉L3程序執(zhí)行后轉移到L3執(zhí)行。6、已知AX=4258H , BX=6083H,分析下列程序每條指令的執(zhí)行結果?寫出程序執(zhí)行后轉移到什么標號執(zhí)行。 ADD AX , BX ; AX=4258H+6083H=A2DBH ; OF=1 ,CF=0 JNO L1 ; OF=1,不轉L1 JNC L2 ;CF=0,轉L2 JMP L3程序執(zhí)行后轉移到L2執(zhí)行。7、已知DS=8000H,SS=400
37、0H,CS=2000H,ES=9000H,AX=5423H,BX=2000H,SI=2000H,DI=1000H,CX=0004H,DX=0050H,SP=0300H,BP=6000H,,DF=0,CF=1(4A000H)=0500H,(4A002H)=2B00H(92500H)=87A5H, (8A000H)=3450H(8A002H)=7700H,(44000H) =B629H按下列要求回答問題。(1)寫出執(zhí)行指令 SAR WORD PTR ES: 0500H+BX,CL 后的結果。答:物理地址=ES*10H+BX+0500H =9000H*10H+2000H+0500H=92500H 操
38、作數(shù)(92500H)=87A5H , CL=4 ,算術右移4位 執(zhí)行后(92500H)=F87AH (2) 寫出執(zhí)行指令 SAR WORD PTR SI+BP,CL 后的結果。答:物理地址=SS*10H+SI+BP =4000H*10H+2000H+2000H=44000H 操作數(shù)(44000H)=B629H , CL=4 ,算術右移4位 執(zhí)行后(44000H)=FB62H (3)寫出執(zhí)行指令 JMP DWORD PTR 3000H+DI+BP 后的轉移地址是多少?物理地址=SS*10H+3000H+DI+BP=4000H*10H+3000H+1000H+6000H=4A000H 操作數(shù)(4A
39、000H)=0500H,(4A002H)=2B00H 執(zhí)行后CS=2B00H IP=0500H 8、寫出執(zhí)行段間轉移指令JMP FAR PTR LOP指令時,執(zhí)行的操作是怎樣的?答:執(zhí)行段間轉移指令JMP FAR PTR LOP指令時,執(zhí)行的操作是:IP轉移指令第2、3字節(jié)目標地址的偏移地址 CS轉移指令第4、5字節(jié)目標地址的段地址9、指令“JMP SI”和“JMP WORD PTR SI”作用有什么不同?請說明。答:上述兩條指令都是段內近轉移指令,但是偏移地址的來源不同。指令JMP SI 執(zhí)行時,新的偏移地址在SI寄存器內指令JMP WORD PTR SI執(zhí)行時,目的偏移地址在存儲單元中,該
40、存儲單元的地址在DS: SI中。第八章 循環(huán)結構程序設計1、下列串操作指令REP、REPNZ、REPNZ正確使用是怎樣的?答: REP LODSB REP STOSB REP MOVB REPZ CMPS REPNZ SCASB 2、已知DS=1000H ,ES=3000H,SI=2500,DI=0500H,CX=0004H,DF=0,AX=7825H,(12500H)=12H,(12501H)=34H(12502H)=56H,(12503H)=78H.指令REP STOSB 執(zhí)行后結果是怎樣的?答:本題是向目的串中存數(shù)據(jù)的操作目的串操作地址=ES*10H+DI =30000H+0500H=3
41、0500H 關鍵字=AL=25H REP重復次數(shù)=CX=0004執(zhí)行后(30500H)=25H,(30501H)=25H,(30502H)=25H,(30503H)=25H或(30500H30503H)=56H3、已知DS=1000H ,ES=4000H,SI=2500H,DI=0500H,CX=0004H,DF=0,AX=3456H,(12500H)=12H,(12501H)=34H,(12502H)=56H,(12503H)=78H.指令REP MOVSB 執(zhí)行后結果是怎樣的?答:本題是串傳送操作源串操作地址=DS*10H+SI =10000H+2500H=12500H目的串操作地址=ES
42、*10H+DI =40000H+0500H=40500H REP重復次數(shù)=CX=0004執(zhí)行后(40500H)=12H , (40501H)=34H ,(40502H)=56H , (40503H)=78H4、掌握在字符串中查找關鍵字并做替換的編程.例:編寫程序實現(xiàn)從數(shù)據(jù)段以DAT為首地址的字符串中尋找所有的 Y 字符,找到后替換為 X ,該字符串以0DH(回車)結尾,字符的個數(shù)不大于50個。數(shù)據(jù)段定義DATA SEGMENT DAT DB ABCA,0DHDATA ENDS;代碼段定義CODE SEGMENT ASSUME CD:CODE , DS:DATA;初始化DS段START:MOV
43、AX , DATA MOV DS , AX;初始化 MOV BX , OFFSET DAT;循環(huán)查詢 L3:MOV AL , BX;判結束 CMP AL,0DH JE L1 ;判 Y CMP AL , Y JNE L2;查到Y ,替換 MOV BX , X;修改指針,循環(huán) L2:INC BX JMP L3;保存結果,返回DOS LI: MOV AH,4CH INT 21H CODE ENDS END START5、掌握在字符串中查找關鍵字,找到了存儲關鍵字的地址,未找到存標志-1。例:編程從鍵盤輸入不超過100個字符的字符串,輸入后編寫程序在該字符串中查找是否有*,若有就將地址存入A單元;若無
44、則將FFFF存入A。解:定義數(shù)據(jù)段DATA SEGMENT DAT DB 100,?,100DUP(?); A DW ?DATA ENDS;定義代碼段 CODE SEGMENT ASSUME CS:CODE,DS:DATA;初始化DS段 START : MOV AX,DATA MOV DS,AX;鍵盤輸入 MOV DX , OFFSET BUF MOV AH , 0AH INT 21H;其他初始化 MOV BX,OFFSET DAT INC BX MOV CL,BX MOV CH,0, INC BX;查找 L0:MOV AL , BX CMP AL , * JZ L1 INC BX LOOP
45、L0 MOV A ,0FFFFH; JMP EXIT L1: MOV A , BX;返回DOS EXIT: MOV AH,4CH INT 21HCODE ENDS END START6、已知DS、SS、ES、CS、AX、BX、SI、DI、CX、DX、SP、BP、CF、DF、部分內存單元中的內容,寫出指令 SAR 、SHR、 JMP 、PUSH 、 REP STOSB 、REP MOVSB 、CALL、RET 、DAA執(zhí)行后的結果。(1)已知DS=5000H,BX=2500H,(52500H)=6800H, (52502H)=5600H,求下列指令執(zhí)行后的轉移地址。指令1:JMP WORD PT
46、R BX ; 解:物理地址=DS*10H+BX=52500H, (52500H)=6800H ,執(zhí)行后IP=6800H,CS不變指令2:JMP DWORD PTR BX ; 解:物理地址=DS*10H+BX=52500H, (52500H)=6800H , (52502H)=5600H執(zhí)行后IP=6800H,CS=5600H,程序轉移到5600H:6800H執(zhí)行。(2) 例如:已知DS=5000H,BX=2500H, DI=6000H (58500H)=B456H,CX=0004H,求下指令執(zhí)行后的結果。指令1:SAR BXDI , CL ; 解:物理地址=DS*10H+BX+DI=58500
47、H (58500H) = B456H , CL=4執(zhí)行后:(58500H) = FB45H指令2:SHR BXDI , CL ; 解:物理地址=DS*10H+BX+DI=58500H (58500H) = B456H , CL=4執(zhí)行后:(58500H) = 0B45H已知DS=5000H,BX=2500H, DI=6000H (58500H)=B456H,CX=0004H,CF=1指令3:RCL BYTE PTRBXDI , 1 ; 答:物理地址=DS*10H+BX+DI =50000H+2500H+6000H=58500H 操作數(shù):(58500H)=56H CF=1執(zhí)行前:(58500H)
48、= 56H=0101 0110 CF=1執(zhí)行后 (58500H)= ADH=1010 1101 CF=0 CF0 101 0 110 1 CF=1 (3)例如:已知SS=3200H,SP=0500H,CX=5484H,求下指令執(zhí)行后的結果。PUSH CX ; SP-2=SP , 執(zhí)行后SP=04FEH , (SS:SP)=(3200H:04FEH)= 5484H或(324FEH)=5484H(4) 已知ES=2000H,DI=0500H,CX=0004H,AX=3456H寫出執(zhí)行REP STOSB 的操作結果是怎樣的?答:本題是向串中存為目的串操作 目的串操作地址=ES*10H+DI =200
49、00H+0500H=20500H 關鍵字=AL=56H REP重復次數(shù)=CX=0004執(zhí)行后(20500H)=56H (20501H)=56H (20502H)=56H (20503H)=56H或(21500H25003H)=56H7、已知DS=1000H ,ES=3000H,SI=2500,DI=0500H,CX=0004H,DF=0,AX=7825H,DF=0(12500H)=12H,(12501H)=34H(12502H)=56H,(12503H)=78H.指令REP STOSB 執(zhí)行后結果是怎樣的?答:本題是向目的串中存數(shù)據(jù)的操作目的串操作地址=ES*10H+DI =30000H+05
50、00H=30500H 關鍵字=AL=25H DF=0 REP重復次數(shù)=CX=0004執(zhí)行后(30500H)=25H,(30501H)=25H,(30502H)=25H,(30503H)=25H或(30500H30503H)=25H8、8086CPU串指令中對源串、目的串有何要求。答:源串物理地址=DS*10H+SI,目的串物理地址=ES*10H+DI執(zhí)行前必需設置DS、SI,ES、DICX(重復次數(shù))DF控制地址修改方向標志9、掌握REP、REPE、REPNE有何功能? REPZ 、REPNZ指令與什么串指令聯(lián)用 ?重復執(zhí)行的終止條件是什么?答:REP:可重復執(zhí)行MOVS、LOAD、STOSR
51、EPE:可用于串比較CMPSREPNE:可用于串搜索SCASREPZ CMPS : CX=0(循環(huán)結束,兩串相等)或ZF=0(發(fā)現(xiàn)不等,提前退出)與CMPS指令聯(lián)用,可用于兩串是否相同的比較REPNZ SCAS:CX=0 (循環(huán)結束,未找到關鍵字)或ZF=1(發(fā)現(xiàn)相等,已找到關鍵字,提前退出)與SCAS指令聯(lián)用,可用于在串中搜索是否有關鍵字第九章 子程序設計1分析下列程序段每條指令的執(zhí)行結果和程序實現(xiàn)的功能?MOV AX,86H MOV BL,17H CALL XYZ JNC L INC AH MOV X , AX HLT XYZ PROC ADD AL,BL DAA RET XYZ ENDP
52、 答:MOV AX,86H ;AX=0086H MOV BL,17H ;BL=17H CALL XYZ ;JNC L ; CF=0 ,轉LINC AH ; CF=1 , AHAH+1 ,AH=1 MOV X , AX ;X=0103H HLT ; XYZ PROC ADD AL,BL ; AL=9DH,CF=0 DAA ;AL=03H, CF=1RET XYZ ENDP 程序實現(xiàn)的功能是完成兩個BCD碼數(shù)求和(86+17),進位加在AH中,和值(103)存入X字單元 2分析下列程序段每條指令的執(zhí)行結果和程序實現(xiàn)的功能?。 MOV AL,26H MOV DL,48H CALL ABC MOV X
53、 , AL HLT ABC PROC ADD AL,DL DAA RET ABC ENDP 答: MOV AL,26H ;AL=26H MOV DL,48H ;DL=48H CALL ABC ; MOV X , AL ; X=74H HLT ; ABC PROC ADD AL,DL ;AL=6EH,CF=0 DAA ;AL=74H,CF=0 RET ; ABC ENDP 程序實現(xiàn)的功能是完成兩個BCD碼求和(36+48),和值(74)存入X單元3、掌握匯編語言中的DOS功能調用的方法(單個字符輸入輸出、串字符輸入輸出)。例1:鍵入單個字符,判斷是否為回車,是轉EXIT,否則轉L. MOV AH
54、 , 1 INT 21H CMP AL , 0DH JE EXIT JMP L . EXIT: .例2:;顯示單個字符數(shù)字6 MOV DL ,36H MOV AH , 2 INT 21H ;顯示單個字符A MOV DL ,A MOV AH , 2 INT 21H例3:用2號調用顯示字符串MSG DB This message was displayed with DOS function 02H MSGLEN EQU $-MSG ;計算數(shù)據(jù)個數(shù) MOV CX,MSGLEN;取數(shù)據(jù)個數(shù)做循環(huán)次數(shù) MOV SI,OFFSET MSG ;設指針 MOV AH,02H ;NEXT : MOV DL,
55、SI ;取輸出字符 INT 21H ;輸出顯示 INC SI ;指向下一個數(shù)據(jù) LOOP NEXT ;循環(huán)輸出顯示例3:用9號調用顯示字符串MSG DB This message was displayed with DOS function 02H$ MOV DX,OFFSET MSG ;設指針 MOV AH,09H ; INT 21H ;輸出顯示字符串輸入(0A號功能調用),功能:從鍵盤接收字符串存入內存的鍵盤輸入緩沖區(qū)。調用方法:預先在內存定義一個鍵盤輸入緩沖區(qū)。緩沖區(qū)的第一個字節(jié)為指定緩沖區(qū)能接收的字符個數(shù),第二個字節(jié)保留以用作由系統(tǒng)自動填寫實際輸入字符的個數(shù),第三個字節(jié)開始存放從鍵上
56、輸入的實際字符ASCII碼。例如:定義一個輸入不超過50個字符的輸入緩沖區(qū)。 BUF DB 50 , ? , 50DUP(?)字符的輸入緩沖區(qū)首地址送DS:DX執(zhí)行:MOV AH , 0AH ; INT 21H ;用戶鍵入字符串 完成從鍵盤接收字符串存到指定內存的輸入緩沖區(qū),直到輸入回車符為止,由系統(tǒng)自動填寫實際輸入字符的個數(shù)存入第二個字節(jié),從第三個字節(jié)開始存放從鍵上輸入的字符ASCII碼。 若實際輸入的字符數(shù)少于定義的字節(jié)數(shù),則緩沖區(qū)內其余字節(jié)補零;若實際輸入多于定義的字節(jié)數(shù),則多余字符丟棄,且響鈴。例:利用0AH號功能調用,從鍵盤輸入最多為80個字符的字符串存入以BUF為首址的緩沖區(qū)中。
57、DATA SEGMENTBUF DB 80, ?,80 DUP (?)DATA ENDS.START: MOV AX,DATA MOV DS,AX ;緩沖區(qū)段地址DS LEA DX,BUF;取緩沖區(qū)偏移DX MOV AH,0AH INT 21H : MOV BX,OFFSET BUF;指向輸入緩沖區(qū) INC BX ;指向實際輸入字符個數(shù)單元 MOV CL, BX ;取字符個數(shù)做循環(huán)次數(shù) MOV CH ,0 INC BX ;指向實際字符存放單元L: MOV AL , BX ;取輸入的字符 . ;字符處理 INC BX ;指向下一單元 LOOP L ;循環(huán)4、編程從鍵盤輸入一個字符串(長度50),輸入后在該字符串中搜索是否有需要查找的關鍵字,如果有則顯示“YY”,否則顯示“NN”解: ;定義數(shù)據(jù)段 DATA SEGMENTBUF DB 50,?,50DUP(?);YDB0D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度車輛購置擔保合同及擔保函規(guī)范文本
- 二零二五年度拆除項目臨時用電合同規(guī)范
- 2025年度高新技術企業(yè)職工權益保障集體合同示范文本
- 2025年度建筑工地打樁作業(yè)安全責任合同范本
- 二零二五年度電商平臺直播帶貨合作合同
- 2025年度園林苗木種植基地投資與合作苗木購銷合同樣本
- 2025年度大型儀器設備購置與安裝調試合同
- 2025年度瓷磚電商平臺合作框架合同
- 服裝設計居間服務合同樣本
- 二零二五年度爆炸事故損害賠償和解與應急響應合同
- 安踏組織架構分析
- 北師大版五年級(下冊)數(shù)學知識要點歸納
- GB/T 44619-2024福壽螺檢疫鑒定方法
- 2024年湖南省公務員錄用考試《行測》試題及答案解析
- 2024年山東省淄博市中考歷史試題卷(含答案解析)
- 電力工程質量驗收手冊
- 四年級語文下冊 期末復習文言文閱讀專項訓練(一)(含答案)(部編版)
- 學習新課程標準的方案
- 2024-2025學年小學信息技術(信息科技)三年級全一冊義務教育版(2024)教學設計合集
- 人教版五年級上冊解方程練習200題及答案
- 2024年黑龍江省哈爾濱市中考數(shù)學試卷(附答案)
評論
0/150
提交評論