版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、微機(jī)原理與接口技術(shù)(第二版) 清華大學(xué)出版社習(xí)題11. 什么是匯編語言,匯編程序,和機(jī)器語言?答:機(jī)器語言是用二進(jìn)制代碼表示的計(jì)算機(jī)能直接識(shí)別和執(zhí)行的一種機(jī)器指令的集合。匯編語言是面向及其的程序設(shè)計(jì)語言。在匯編語言中,用助記符代替操作碼,用地址符號(hào)或標(biāo)號(hào)代替地址碼。這種用符號(hào)代替機(jī)器語言的二進(jìn)制碼,就把機(jī)器語言編程了匯編語言。使用匯編語言編寫的程序,機(jī)器不能直接識(shí)別,要由一種程序?qū)R編語言翻譯成機(jī)器語言,這種起翻譯作用的程序叫匯編程序。2. 微型計(jì)算機(jī)系統(tǒng)有哪些特點(diǎn)?具有這些特點(diǎn)的根本原因是什么?答:微型計(jì)算機(jī)的特點(diǎn):功能強(qiáng),可靠性高,價(jià)格低廉,適應(yīng)性強(qiáng)、系統(tǒng)設(shè)計(jì)靈活,周期短、見效快,體積小、
2、重量輕、耗電省,維護(hù)方便。這些特點(diǎn)是由于微型計(jì)算機(jī)廣泛采用了集成度相當(dāng)高的器件和部件,建立在微細(xì)加工工藝基礎(chǔ)之上。3. 微型計(jì)算機(jī)系統(tǒng)由哪些功能部件組成?試說明“存儲(chǔ)程序控制”的概念。答:微型計(jì)算機(jī)系統(tǒng)的硬件主要由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成?!按鎯?chǔ)程序控制”的概念可簡要地概括為以下幾點(diǎn): 計(jì)算機(jī)(指硬件)應(yīng)由運(yùn)算器、存儲(chǔ)器、控制器和輸入/輸出設(shè)備五大基本部件組成。 在計(jì)算機(jī)內(nèi)部采用二進(jìn)制來表示程序和數(shù)據(jù)。 將編好的程序和原始數(shù)據(jù)事先存入存儲(chǔ)器中,然后再啟動(dòng)計(jì)算機(jī)工作,使計(jì)算機(jī)在不需要人工干預(yù)的情況下,自動(dòng)、高速的從存儲(chǔ)器中取出指令加以執(zhí)行,這就是存儲(chǔ)程序的基本含義。 五大部
3、件以運(yùn)算器為中心進(jìn)行組織。4. 請(qǐng)說明微型計(jì)算機(jī)系統(tǒng)的工作過程。答:微型計(jì)算機(jī)的基本工作過程是執(zhí)行程序的過程,也就是CPU自動(dòng)從程序存放的第1個(gè)存儲(chǔ)單元起,逐步取出指令、分析指令,并根據(jù)指令規(guī)定的操作類型和操作對(duì)象,執(zhí)行指令規(guī)定的相關(guān)操作。如此重復(fù),周而復(fù)始,直至執(zhí)行完程序的所有指令,從而實(shí)現(xiàn)程序的基本功能。5. 試說明微處理器字長的意義。答:微型機(jī)的字長是指由微處理器內(nèi)部一次可以并行處理二進(jìn)制代碼的位數(shù)。它決定著計(jì)算機(jī)內(nèi)部寄存器、ALU和數(shù)據(jù)總線的位數(shù),反映了一臺(tái)計(jì)算機(jī)的計(jì)算精度,直接影響著機(jī)器的硬件規(guī)模和造價(jià)。計(jì)算機(jī)的字長越大,其性能越優(yōu)越。在完成同樣精度的運(yùn)算時(shí),字長較長的微處理器比字長
4、較短的微處理器運(yùn)算速度快。6. 微機(jī)系統(tǒng)中采用的總線結(jié)構(gòu)有幾種類型?各有什么特點(diǎn)?答:微機(jī)主板常用總線有系統(tǒng)總線、I/O總線、ISA總線、IPCI總線、AGP總線、IEEE1394總線、USB總線等類型。 7. 將下列十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)、八進(jìn)制數(shù)、十六進(jìn)制數(shù)。 (4.75)10=(0100.11)2=(4.6)8=(4.C)16 (2.25)10=(10.01)2=(2.2)8=(2.8)16 (1.875)10=(1.111)2=(1.7)8=(1.E)168. 將下列二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)。 (1011.011)2=(11.6)10 (1101.01011)2=(13.58)10 (1
5、11.001)2=(7.2)109. 將下列十進(jìn)制數(shù)轉(zhuǎn)換成8421BCD碼。 2006=(0010 0000 0000 0110)BCD 123.456=(0001 0010 0011.0100 0101 0110)BCD10. 求下列帶符號(hào)十進(jìn)制數(shù)的8位基2碼補(bǔ)碼。 +127補(bǔ)= 01111111 -1補(bǔ)= 11111111 -128補(bǔ)= 10000000 +1補(bǔ)= 0000000111. 求下列帶符號(hào)十進(jìn)制數(shù)的16位基2碼補(bǔ)碼。 +655補(bǔ)= 0000001010001111 -1補(bǔ)=1111111111111110 -3212補(bǔ)=1111011101011100 +100補(bǔ)=000000
6、000110010043習(xí)題 21. 8086 CPU在內(nèi)部結(jié)構(gòu)上由哪幾部分組成?各部分的功能是什么?答:8086 CPU內(nèi)部由兩大獨(dú)立功能部件構(gòu)成,分別是執(zhí)行部件和總線接口部件。執(zhí)行部件負(fù)責(zé)進(jìn)行所有指令的解釋和執(zhí)行,同時(shí)管理有關(guān)的寄存器。總線接口部件是CPU在存儲(chǔ)器和I/O設(shè)備之間的接口部件,負(fù)責(zé)對(duì)全部引腳的操作。2. 簡述8086 CPU的寄存器組織。答:8086 CPU內(nèi)部共有14個(gè)16位寄存器,按用途可分為數(shù)據(jù)寄存器,段寄存器,地址指針與變址寄存器和控制寄存器。數(shù)據(jù)寄存器包括累加器,基址寄存器,計(jì)數(shù)器,和數(shù)據(jù)寄存器。段寄存器用來存放各分段的邏輯段基值,并指示當(dāng)前正在使用的4個(gè)邏輯段。地
7、址指針與變址寄存器一般用來存放主存地址的段內(nèi)偏移地址,用于參與地址運(yùn)算??刂萍拇嫫靼ㄖ噶罴拇嫫骱蜆?biāo)識(shí)寄存器。3. 試述8086 CPU標(biāo)志寄存器各位的含義與作用。答:標(biāo)志寄存器是16位的寄存器,但實(shí)際上8086只用到9位,其中的6位是狀態(tài)標(biāo)識(shí)位,3位是控制標(biāo)識(shí)位。狀態(tài)標(biāo)志位分別是CF,PF,AF,ZF,SF,和OF;控制標(biāo)志位包括DF,IF,TF。CF:進(jìn)位標(biāo)志位。算數(shù)運(yùn)算指令執(zhí)行后,若運(yùn)算結(jié)果的最高位產(chǎn)生進(jìn)位或借位,則CF=1,否則CF=0。PF:奇偶標(biāo)志位。反應(yīng)計(jì)算結(jié)果中1的個(gè)數(shù)是偶數(shù)還是奇數(shù)。若運(yùn)算結(jié)果的低8位中含有偶數(shù)個(gè)1,則PF=1;否則PF=0.AF:輔助進(jìn)位標(biāo)志。算數(shù)運(yùn)算指令執(zhí)
8、行后,若運(yùn)算結(jié)果的低4位向高4位產(chǎn)生進(jìn)位或借位,則AF=1;否則AF=0.ZF:零標(biāo)志位。若指令運(yùn)算結(jié)果為0,則ZF=1;否則ZF=0。SF:符號(hào)標(biāo)志位。它與運(yùn)算結(jié)果最高位相同。OF:溢出標(biāo)志位。當(dāng)補(bǔ)碼運(yùn)算有溢出時(shí),OF=1;否則OF=0。DF:方向標(biāo)志位。用于串操作指令,指令字符串處理時(shí)的方向。IF:中斷允許標(biāo)志位。用來控制8086是否允許接收外部中斷請(qǐng)求。TF:單步標(biāo)志位。它是為調(diào)試程序而設(shè)定的陷阱控制位。4. 8086 CPU狀態(tài)標(biāo)志和控制標(biāo)志有何不同?程序中是怎樣利用這兩類標(biāo)識(shí)的?8086的狀態(tài)標(biāo)志和控制標(biāo)識(shí)分別有哪些?答:狀態(tài)標(biāo)志位反應(yīng)了當(dāng)前運(yùn)算和操作結(jié)果的狀態(tài)條件,可作為程序控制轉(zhuǎn)
9、移與否的依據(jù)。它們分別是CF,PF,AF,ZF,SF,和OF??刂茦?biāo)志位用來控制CPU的操作,由指令進(jìn)行置位和復(fù)位,控制標(biāo)志位包括DF,IF,TF。5. 將1001 1100和1110 0101相加后,標(biāo)識(shí)寄存器中CF, PF, AF, ZF, SF, OF各為何值?答:CF=1,PF=1,AF=1,ZF=0,SF=1,OF=06. 什么是存儲(chǔ)器的物理地址和邏輯地址?在8086系統(tǒng)中,如何由邏輯地址計(jì)算物理地址?答:邏輯地址是思維性的表示,由段地址和偏移地址聯(lián)合表示的地址類型叫邏輯地址。物理地址是真實(shí)存在的唯一地址,指的是存儲(chǔ)器中各個(gè)單元的單元號(hào)。在8086系統(tǒng)中,物理地址=段地址×
10、10H偏移地址7. 段寄存器CS=1200H,指令指針寄存器IP=4000H,此時(shí),指令的物理地址為多少?指向這一地址的CS指和IP值是唯一的嗎?答:此指令的物理地址=1200H×10H4000H=16000H 并且指向這一物理地址的CS值和IP值并不是唯一的。8. 在8086系統(tǒng)中,邏輯地址FFFF:0001,00A2:37F和B800:173F的物理地址分別是多少?答:邏輯地址FFFF:000100A2:3TFB800:173F物理地址FFFF1H00D9FHB973FH9. 在8086系統(tǒng)中,從物理地址388H開始順序存放下列3個(gè)雙字節(jié)的數(shù)據(jù)651AH,D761H和007BH,
11、請(qǐng)問物理地址388H,389H,38AH,38BH,38CH和38DH 6個(gè)單元中分別是什么數(shù)據(jù)?答:(388H)=1AH,(389H)=65H,(38AH)=61H,(38BH)=DTH,(38CH)=7BH,(38DH)=00H10. 8086微處理器有哪幾種工作模式?各有什么特點(diǎn)?答:8086微處理器有最大和最小工作模式。在最小模式下:8086 CPU直接產(chǎn)生全部總線控制信號(hào)(DT/R,DEN,ALE,M/IO)和命令輸出信號(hào)(RD,WR,INTA)并提出請(qǐng)求訪問總線的邏輯信號(hào)HOLD,HLDA。在最大工作模式下,必須配置8288總線控制器,并且根據(jù)8086提供的狀態(tài)信號(hào)S2,S1,S0
12、,輸出讀寫控制命令,可以提供靈活多變的系統(tǒng)配置,以實(shí)現(xiàn)最佳的系統(tǒng)性能。11. 簡述8086引腳信號(hào)中M/IO,DT/R,RD,WR,ALE,DEN和BHE的作用。答:M/IO:輸出信號(hào),高電平時(shí),表示CPU與存儲(chǔ)器之間數(shù)據(jù)傳輸;低電平時(shí),表示CPU與I/O設(shè)備之間數(shù)據(jù)傳輸。 DT/R:控制其數(shù)據(jù)傳輸方向的信號(hào)。DT/R=1時(shí),進(jìn)行數(shù)據(jù)發(fā)送;DT/R=0時(shí),進(jìn)行數(shù)據(jù)接收。RD:CPU的讀信號(hào),RD=0時(shí),表示8086為存儲(chǔ)口或I/O端口讀操作。WR:CPU的寫信號(hào),WR =0時(shí),表示8086為存儲(chǔ)口或I/O端口寫操作。ALE:地址存鎖信號(hào),在T1能時(shí)刻有效。DEN:數(shù)據(jù)選通信號(hào),當(dāng)DEN有效時(shí),
13、表示允許傳輸。BHE:數(shù)據(jù)總線允許信號(hào),與A0組合使用,表示是否訪問奇地址字節(jié)。12. 簡述8086讀總線周期和寫總線周期和引腳上的信號(hào)動(dòng)尖態(tài)變化過程。8086的讀周期時(shí)序和寫周期時(shí)序的區(qū)別有哪些?答:在8086讀周期內(nèi),有關(guān)總線信號(hào)的變化如下:M/:在整個(gè)讀周期保持有效,當(dāng)進(jìn)行存儲(chǔ)器讀操作時(shí),M/為高電平;當(dāng)進(jìn)行I/O端口讀操作時(shí),M/為低電平。A19/S6A16/S3:在T1期間,輸出CPU要讀取的存儲(chǔ)單元或I/O端口的地址高4位。T2T4期間輸出狀態(tài)信息S6-S3。/S7:在T1期間,輸出BHE有效信號(hào)(為低電平),表示高8位數(shù)據(jù)總線上的信息可以使用,信號(hào)通常作為奇地址存儲(chǔ)體的體選信號(hào)(
14、偶地址存儲(chǔ)體的體選信號(hào)是最低地址位A0)。T2T4期間輸出高電平。ADl5AD0:在T1期間,輸出CPU要讀取的存儲(chǔ)單元或I/O端口的地址A15A0。T2期間為高阻態(tài),T3T4期間,存儲(chǔ)單元或I/O端口將數(shù)據(jù)送上數(shù)據(jù)總線。CPU從ADl5AD0上接收數(shù)據(jù)。ALE:在T1期間地址鎖存有效信號(hào),為一正脈沖,系統(tǒng)中的地址鎖存器正是利用該脈沖的下降沿來鎖存A19/S6A16/S3,ADl5AD0中的20位地址信息以及。:T2期間輸出低電平送到被選中的存儲(chǔ)器或I/O接口,注意,只有被地址信號(hào)選中的存儲(chǔ)單元或I/O端口,才會(huì)被RD信號(hào)從中讀出數(shù)據(jù)(數(shù)據(jù)送上數(shù)據(jù)總線ADl5AD0)。DT/:在整個(gè)總線周期內(nèi)
15、保持低電平,表示本總線周期為讀周期,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,用來控制數(shù)據(jù)傳輸方向。:在T2T3期間輸出有效低電平,表示數(shù)據(jù)有效,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,用來實(shí)現(xiàn)數(shù)據(jù)的選通??偩€寫操作的時(shí)序與讀操作時(shí)序相似,其不同處在于:ADl5AD0:在T2T4期間送上欲輸出的的數(shù)據(jù),而無高阻態(tài)。:從T2T4,引腳輸出有效低電平,該信號(hào)送到所有的存儲(chǔ)器和I/O接口。注意,只有被地址信號(hào)選中的存儲(chǔ)單元或I/O端口才會(huì)被信號(hào)寫入數(shù)據(jù)。DT/:在整個(gè)總線周期內(nèi)保持高電平,表示本總線周期為寫周期,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,用來控制數(shù)據(jù)傳輸方向。習(xí)題3 1. 假定(DS)=2000H,(ES)=2100
16、H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,數(shù)據(jù)變量VAL的偏移地址為0050H,請(qǐng)指出下列指令原操作數(shù)是什么尋址方式,其物理地址是多少?(1) MOV AX, 0ABH (2) MOV AX, 100H(3) MOV AX, VAL (4) MOV BX, SI(5) MOV AL, VALBX (6) MOV CL, BXSI(7) MOV VALSI, BX (8) MOV BPSI, 100答:(1) 立即數(shù)尋址,無物理地址 (2) 直接尋址,物理地址=2000H×10H+100H=20100H(3) 直接尋址,物理地址=200
17、0H×10H+0050H=20050H(4) 寄存器間接尋址,物理地址=2000H×10H+00A0=200A0H(5) 相對(duì)寄存器尋址,物理地址=2000H×10H+(0050+0100H)=20150H(6) 基址加變尋址,物理地址=2000H×10H+(0100H+00A0H)=201A0H(7) 寄存器尋址,無物理地址(8) 立即數(shù)尋址,無物理地址2. 已知(SS)=0FFA0H,(SP)=00B0H,先執(zhí)行兩條把8057H和0F79H分別進(jìn)棧的PUSH指令,再執(zhí)行一條POP指令,試畫出堆棧區(qū)和SP內(nèi)容變化的過程示意圖。答:“8057H”進(jìn)棧,則
18、SP自動(dòng)從00B0H指向00B2H,“0F79H”進(jìn)棧,則SP自動(dòng)從00B2H指向00B4H;執(zhí)行一條POP指令,“0F79H”被彈出棧,SP從00B4H指向00B2H。圖略。3. 設(shè)有關(guān)寄存器及存儲(chǔ)單元的內(nèi)容如下:(DS)=2000H, (BX)=0100H, (AX)=1200H, (SI)=0002H, (20100H)=12H, (20101H)=34H, (20102H)=56H, (20103H)=78H, (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H, (21203H)=65H.試說明下列各條指令單獨(dú)執(zhí)行后相關(guān)寄存器或存儲(chǔ)單元的內(nèi)容。(1)
19、MOV AX, 1800H (2) MOV AX, BX(3) MOV BX, 1200H (4) MOV DX, 1100BX(5) MOV BXSI, AL (6) MOV AX, 1100BXSI答:(1) (AX)=1800H (2) (AX)=0100H (3) (BX)=4C2AH (4) (DX)=4C2AH (5) (20102H)=00H (6) (AX)=65B7H4. 寫出實(shí)現(xiàn)下列計(jì)算的指令序列。(1) Z=W+(X+Z) (2) Z=W-(X+6)-(R+9)答:(1) MOV AX, Z ADD AX, X ADD AX, W MOV Z, AX (2) MOV AX
20、, W ADD X, 6 SUB AX, X ADD R, 9 SUB AX, R MOV Z, AX5. 若在數(shù)據(jù)段中從字節(jié)變量TABLE相應(yīng)的單元開始存放了015的平方值,試寫出包含XLAT指令的指令序列查找N(015)中的某個(gè)平方數(shù)。 答:LEA BX, TABLE MOV AL, CL XLAT6. 寫出實(shí)現(xiàn)下列計(jì)算的指令序列。(1) Z=(W*X)/(R+6) (2) Z=(W-X)/5*Y)*2答:(1) MOV AX, W IMUL X ADD R, 6 IDIV R MOV Z, AX (2) MOV AX, W SUB AX, X MOV BL, 5 IDIV BL CBW
21、IMUL Y MOV BX, 2 IMUL BX MOV Z, AX7. 假定(DX)=1100100110111001B,CL=3,CF=1, 試確定下列各條指令單獨(dú)執(zhí)行后DX的值。(1) SHR DX, 1 (2) SHL DL, 1 (3) SAL DH, 1 (4) SAR DX, CL(5) ROR DX, CL (6) ROL DL, CL (7) RCR DL, 1 (8) RCL DX, CL答:(1) (DX)=0110 0100 1101 1100B (2) (DX)=1100 1001 0111 0010B(3) (DX)=1001 0010 1011 1001B (4)
22、 (DX)= 1111 1001 0011 0111B(5) (DX)= 0011 1001 0011 0111B (6)(DX)= 0100 1101 1100 1110B (7) (DX)= 1110 0100 1101 1100B (8) (DX)= 1001 0011 0111 0011B8. 已知程序段如下:MOV AX, 1234HMOV CL, 4ROL AX, CLDEC AXMOV CX, 4MUL CXINT 20H試問:(1)每條指令執(zhí)行后,AX寄存器的內(nèi)容是什么?(2)每條指令執(zhí)行后,CF,SF及ZF的值分別是什么?(3)程序運(yùn)行結(jié)束后,AX及DX寄存器的值為多少?答:
23、MOV AX, 1234H (AX)=1234H, CF=0,SF=0,ZF=0 MOV CL, 4 ROL AX,CL (AX)=2341H,CF=1,SF=0,ZF=0 DEC AX (AX)=2340H,CF=1,SF=0,ZF=0 MOV CX,4 MULL CX (AX)=8D00H, CF=0,SF=1,ZF=0INT 20H結(jié)束后,(DX)=0000H, (AX)=8000H9. 試分析下列程序段:ADD AX, BXJNC L2SUB AX, BXJNC L3JMP SHORTL5如果AX,BX的內(nèi)容給定如下:AX BX(1) 14C6H 80DCH(2) B568H 54B7
24、H問該程序在上述情況下執(zhí)行后,程序轉(zhuǎn)向何處。答:(1)轉(zhuǎn)到L2處 (2)轉(zhuǎn)到L3處習(xí)題41下列語句在存儲(chǔ)器中分別為變量分配多少字節(jié)空間?并畫出存儲(chǔ)空間的分配圖。VAR1 DB 10,2 VAR2 DW 5 DUP(?),0 VAR3 DB HOW ARE YOU?,3 DUP(1,2) VAR4 DD -1,1,0 答:字節(jié)空間:VAR1:2;VAR2:12;VAR3:13;VAR4:8。存儲(chǔ)空間的分配圖: 2假定VAR1 和VAR2 為字變量,LAB 為標(biāo)號(hào),試指出下列指令的錯(cuò)誤之處。(1)ADD VAR1,VAR2 (2)SUB AL,VAR1 (3)JMP LABCX (4)JNZ VA
25、R1 (5) MOV 1000H,100 (6)SHL AL, 4 答:(1) 在算術(shù)運(yùn)算指令中,兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址方式 (2) AL 為字節(jié),VAR1 為字變量,字長不相等; (3) 錯(cuò)誤1:寄存器相對(duì)尋址方式,只能使用基址或變址寄存器,不能使用CX寄存器。錯(cuò)誤2:匯編格式錯(cuò)誤,無法判段是段內(nèi)轉(zhuǎn)移還是段間轉(zhuǎn)移。 (4) 轉(zhuǎn)向地址應(yīng)為標(biāo)號(hào),不能是變量; (5) 目的操作數(shù)的類型不確定; (6) SHL 指令中,當(dāng)所移位數(shù)超過1 時(shí),必須用CL取代所移位數(shù)。3對(duì)于下面的符號(hào)定義,指出下列指令的錯(cuò)誤。A1 DB ? A2 DB 10 K1 EQU 1024 (1) MOV K1,AX
26、(2)MOV A1,AX (3)CMP A1,A2 (4)K1 EQU 2048 答:(1)K1 為常量,不能用MOV 指令賦值; (2)A1 為字節(jié),AX 為字變量,類型不一致; (3)A1 和A2同為存儲(chǔ)器尋址方式,不符合語法規(guī)則; (4)K1 重新賦值前,必須用PURGE 釋放。4數(shù)據(jù)定義語句如下所示: FIRST DB 90H,5FH,6EH,69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?) FORTH DB 4 DUP (?)自FIRST 單元開始存放的是一個(gè)四字節(jié)的十六進(jìn)制數(shù)(低位字節(jié)在前),要求: 編一段程序?qū)⑦@個(gè)數(shù)左移兩位后存放到自SECOND
27、開始的單元,右移兩位后存放到自THIRD 開始的單元,求補(bǔ)后放到FORTH開始的單元。(注意保留移出部分) 答: DATA SEGMENT FIRST DB 90H,5FH,6EH,69H SECOND DB 5 DUP(?) THIRD DB 5 DUP(?) FORTH DB 4 DUP (?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,F(xiàn)IRST LEA DI,SECOND MOV CX,2 CLC;左移2 位MOV AX,WORD PTR SI ;AX=5F90H 為低
28、十六位數(shù)據(jù)INC SI INC SI MOV DX,WORD PTR SI ;DX=696EH 為高十六位數(shù)據(jù)PUSH DX ;保存原有的高十六位數(shù)據(jù)PUSH AX ;保存原有的低十六位數(shù)據(jù)ROL DX,CL;將高位數(shù)據(jù)不帶進(jìn)位循環(huán)左移兩位,即高2 位數(shù)據(jù)在DL 的低2 位AND DL,03H ;讓DL 中僅保存移出的高2 位數(shù)據(jù)MOV DI+4 ,DL;將移出的高2 位數(shù)據(jù)放入SECOND 中的最高單元中ROL AX,CL;將低位數(shù)據(jù)不帶進(jìn)位循環(huán)左移兩位,即AX 的高2 位在AL 的低2 位AND AL,03H;讓AL 中僅保存移出的AX 高2 位數(shù)據(jù)MOV BL ,AL;將AL 中的數(shù)據(jù)放
29、入BL 中保存POP AX;彈出原有的低十六位數(shù)據(jù)POP DX;彈出原有的高十六位數(shù)據(jù)SHL DX,CL;將高位數(shù)據(jù)算術(shù)邏輯左移2 位SHL AX,CL;將低位數(shù)據(jù)算術(shù)邏輯左移2 位OR DL,BL;將AX 中移出的高2 位數(shù)據(jù)放入DX 的低2 位MOV WORD PTR DI ,AX MOV WORD PTR DI+2 ,DX ;右移2 位LEA SI,F(xiàn)IRST LEA DI,THIRD MOV CX,2 CLC MOV AX,WORD PTR SI ;AX=5F90H 為低十六位數(shù)據(jù)INC SI INC SI MOV DX,WORD PTR SI ; DX=696EH 為高十六位數(shù)據(jù)PU
30、SH DX;保存原有的高十六位數(shù)據(jù)PUSH AX;保存原有的低十六位數(shù)據(jù)ROR AX,CL;將低位數(shù)據(jù)不帶進(jìn)位循環(huán)右移兩位,即低2 位數(shù)據(jù)在AH 的高2 位AND AH,0C0H;讓AH 中僅保存移出的低2 位數(shù)據(jù)PUSH CX MOV CX,6 SHR AH,CL POP CX MOV DI ,AH ;將移出的低2 位數(shù)據(jù)放入THIRD 中的最低單元中ROR DX, CL;將低位數(shù)據(jù)不帶進(jìn)位循環(huán)左移兩位,即AX 的高2 位在AL 的低2 位AND DH,0C0H ;讓DH 中僅保存移出的DX 低2 位數(shù)據(jù)MOV BL ,DH ;將DH 中的數(shù)據(jù)放入BL 中保存POP AX ;彈出原有的低十六
31、位數(shù)據(jù)POP DX ;彈出原有的高十六位數(shù)據(jù)SHR DX,CL ;將高位數(shù)據(jù)算術(shù)邏輯左移2 位SHR AX,CL ;將低位數(shù)據(jù)算術(shù)邏輯左移2 位OR AH,BL ;將DX 中移出的低2 位數(shù)據(jù)放入AX 的高2 位MOV WORD PTR DI+1 , AX MOV WORD PTR DI+3 ,DX ;求補(bǔ)LEA SI,F(xiàn)IRST LEA DI,F(xiàn)ORTH MOV AX,WORD PTR SI ;AX=5F90H 為低十六位數(shù)據(jù)INC SI INC SI MOV DX,WORD PTR SI ; DX=696EH 為高十六位數(shù)據(jù) XOR AX, 0FFFFH ;將低十六位取反 XOR DX,
32、OFFFFH ;將高十六位按位取反 CLC ADD AX,01H ;低位加1,即可為原數(shù)的求補(bǔ) ADC DX,0 ;高位加低位加法時(shí)的進(jìn)位MOV WORD PTR DI , AX MOV WORD PTR DI+2 ,DX MOV AH,4CH INT 21H CODE ENDS END START 5. 試編程序?qū)?nèi)存從40000H到4BFFFH的每個(gè)單元中均寫入55H,并再逐個(gè)單元讀出比較,看寫入的與讀出的是否一致。若全對(duì),則將AL置7EH; 只要有錯(cuò),則將AL置81H。答:DATA SEGMENTDA1 DB 55HCODE SEGMENTASSUME CS:CODE,DS:DATAST
33、ART: MOV AX,4000H MOV DS,AX MOV CX,0C000H MOV BX,0000H MOV AH,55H NEXT1: MOV byte ptrBX,AH INC BX LOOP NEXT1 MOV BX,0000H MOV CX,0C000H MOV AL,81H NEXT2: MOV AH, BX CMP AH,55H JNZ EXIT INC BX LOOP NEXT2 MOV AL,7EHEXIT: MOV AH,4CH INT 21H CODE ENDS END START6. 在當(dāng)前數(shù)據(jù)段4000H開始的128個(gè)單元中存放一組數(shù)據(jù),試編程序?qū)⑺鼈冺樞虬嵋频?/p>
34、A000H開始的順序128個(gè)單元中,并將兩個(gè)數(shù)據(jù)塊逐個(gè)單元進(jìn)行比較; 若有錯(cuò)將BL置00H; 全對(duì)則將BL置FFH,試編程序。答:DATA SEGMENTORG 400HDA1 DB 128 DUP(?)ORG 0A00HDA2 DB 128 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATA MOV DS,AX LEA SI,DA1 LEA DI,DA2 MOV CX,128AGAIN: MOV AL,SI INC SI INC DI LOOP AGAIN LEA SI, DA1 LEA DI
35、, DA2 MOV CX,128NEXT: MOV AL,SI MOV BL,DI CMP AL,BL JNZ ERROR INC SI INC DI MOV BL,0FFH LOOP NEXT JMP EXITERROR: MOV BL,00HEXIT: MOV AH,4CH INT 21H CODE ENDS END START7. 設(shè)變量單元A、B、C存放有3個(gè)數(shù),若3個(gè)數(shù)都不為零,則求3個(gè)數(shù)的和,存放在D中; 若有一個(gè)為零,則將其余兩個(gè)也清零,試編寫程序。答:DATA SEGMENTA DB ?B DB ?C DB ?DATA ENDSCODE SEGMENTASSUME CS:COD
36、E,DS:DATASTART: MOV AX,DATA MOV DS,AX CMP A,00H JNZ LP1 MOV B,0 MOV C,0 JMP LP4LP1: CMP B,00H JNZ LP2 MOV A,0 MOV C,0 JMP LP4LP2: CMP C,00H JNZ LP3 MOV A,0 MOV B,0 JMP LP4LP3: MOV AL,A ADD AL,B ADD AL,C MOV AH,4CHLP4: INT 21H CODE ENDS END START8. 有一個(gè)100個(gè)字節(jié)的數(shù)據(jù)表,表內(nèi)元素已按從大到小的順序排列好,現(xiàn)給定一元素,試編程序在表內(nèi)查找,若表內(nèi)已
37、有此元素,則結(jié)束; 否則,按順序?qū)⒋嗽夭迦氡碇羞m當(dāng)?shù)奈恢茫⑿薷谋黹L。答:DATA SEGMENTBUFF DB 100 DUP(?)DA1 DB (?)LENGTH DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV SI,0 MOV AL,DA1 MOV CX,100FIND0: CMP BUFFSI,AL JZ EXIT INC SI LOOP FIND0 MOV DI,99 MOV SI,0COMPARE: CMP BUFFDI,AL JG INSERT MOV BL,BUFFD
38、I MOV BUFFDI+1,BL DEC DI CMP DI,SI JNL COMPARE JMP EXITINSERT:MOV BUFFDI+1,AL MOV LENGTH , 101EXIT:MOV AH,4CH INT 21HCODE ENDSEND START9. 內(nèi)存中以FIRST和SECOND開始的單元中分別存放著兩個(gè)16位組合的十進(jìn)制(BCD碼)數(shù),低位在前。編程序求這兩個(gè)數(shù)的組合的十進(jìn)制和,并存到以THIRD開始的單元。答: DATA SEGMENTFIRST DD 34341212H SECOND DD 78785656HTHIRD DB ?,?,?,?DATA ENDSC
39、ODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA SI,FIRST LEA DI,SECOND LEA BX,THIRD MOV CX,4 CLCAGAIN:MOV AL,BYTE PTRSI MOV DL,BYTE PTRDI ADC AL,DL DAA MOV BYTE PTRBX,AL INC SI INC DI INC BX LOOP AGAIN JC AA MOV BYTE PTRBX,0 JMP EXITAA:MOV BYTE PTRBX,1EXIT:MOV AH,4CH INT 21H CODE E
40、NDS END START 10. 編寫一段程序,接收從鍵盤輸入的10個(gè)數(shù),輸入回車符表示結(jié)束,然后將這些數(shù)加密后存于BUFF緩沖區(qū)中。加密表如下: 輸入數(shù)字: 0,1,2,3,4,5,6,7,8,9; 密碼數(shù)字: 7,5,9,1,3,6,8,0,2,4。答:DATA SEGMENT MITAB DB '7591368024' CONT EQU $-MITAB BUFF DB 10 DUP (?),'$' YUANWEN DB 10 DUP (?),'$' DATA ENDSCODE SEGMENT ASSUMECSCODE,DSDATA STA
41、RT: MOV AX,DATA MOV DS,AX MOV SI,0 MOV CX,CONT INPUT: MOV AH,1 INT 21H CMP AL,13 JZ EXITAND AL,0FH MOV YUANWENSI ,AL INC SI LOOP INPUTEXIT : LEA BX,MITAB MOV CX,SI MOV SI,0JIAMI: MOV AL,YUANWENSI XLAT MITAB MOV BUFFSI,AL INC SI LOOP JIAMI MOV AH, 4CH INT 21HCODE ENDS END START11.試編程序,統(tǒng)計(jì)由40000H開始的16K
42、個(gè)單元中所存放的字符“A”的個(gè)數(shù),并將結(jié)果存放在DX中。答:DATA SEGMENTDA1 DB 'A'BUFF DB 4000H DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,4000H MOV DS,AX MOV BX,0 MOV CX,4000H FIND: MOV AL,BX MOV BL,DA1 CMP AL,BL JNZ NEXT INC DXNEXT: INC SI LOOP FIND MOV AH,4CH INT 21HCODE ENDSEND START12. 在當(dāng)前數(shù)據(jù)段(DS)
43、,偏移地址為DATAB開始的順序80個(gè)單元中,存放著某班80個(gè)同學(xué)某門考試成績。按如下要求編寫程序: (1) 編寫程序統(tǒng)計(jì)90分; 80分89分; 70分79分; 60分69分,60分的人數(shù)各為多少,并將結(jié)果放在同一數(shù)據(jù)段、偏移地址為BTRX開始的順序單元中。(2) 試編程序,求該班這門課的平均成績?yōu)槎嗌伲⒎旁谠摂?shù)據(jù)段的AVER單元中。答:DATA SEGMENTBUFF DW 80 DUP(?)DA9 DB 0DA8 DB 0 DA7 DB 0DA6 DB 0DA5 DB 0AVER DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:
44、MOV AX,DATA MOV DS,AX MOV CX,80COMPARE: MOV BX,0 CMP BUFFBX,90 JB LP8 INC DA9 JMP NEXT LP8: CMP BUFFBX,80 JB LP7 INC DA8 JMP NEXT LP7: CMP BUFFBX,70 JB LP6 INC DA7 JMP NEXT LP6: CMP BUFFBX,60 JB LP5 INC DA6 JMP NEXT LP5: INC DA5 JMP NEXT NEXT: INC BX LOOP COMPARE MOV CX,80 XOR AX,AX MOV BX,00SUM: AD
45、D AX,BUFFBX INC BX LOOP LP1 MOV CL,80 DIV CL MOV AVER , AL MOV AH,4CH INT 21H CODE ENDS END START13. 編寫一個(gè)子程序,對(duì)AL中的數(shù)據(jù)進(jìn)行偶校驗(yàn),并將經(jīng)過校驗(yàn)的結(jié)果放回AL中。答:JIOU PROCPUSH CXPUSH BXXOR AH, AHPUSH AXMOV CL, 7LOOP1: SAR AL, 1ADC AH, 0LOOP LOOP1MOV AL, AHXOR AH, AH MOV BL, 2DIV BLMOV BL, AHPOP AXROR BL, 1OR AL, BLPOP BXP
46、OP CXRETJIOU ENDP14. 利用上題的子程序,對(duì)80000H開始的256個(gè)單元的數(shù)據(jù)加上偶校驗(yàn),試編程序。CODE SEGMENTASSUME CS: CODESTART : MOV AX, 8000H MOV DS, AX MOV SI, 0 MOV CX, 256 LP: MOV AL, SI CALL JIOU MOV SI, AL INC SI LOOP LP MOV AH, 4CH INT 21H JIOU PROCPUSH CXPUSH BXXOR AH, AHPUSH AXMOV CL, 7LOOP1: SAR AL, 1ADC AH, 0LOOP LOOP1MOV AL, AHXOR AH, AH M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款合同服務(wù)協(xié)議書(2篇)
- 吉林長春外國語學(xué)校2025屆高三上學(xué)期期中考試化學(xué)試卷試題及答案解析
- 豐田汽車租賃合同
- 債權(quán)融資服務(wù)合同
- 停車場(chǎng)地出租合同
- 八年級(jí)語文上冊(cè)第四單元寫作語言要連貫教案新人教版1
- 六年級(jí)數(shù)學(xué)上冊(cè)5圓綜合與實(shí)踐確定起跑線教案新人教版
- 2024年金融科技公司應(yīng)收賬款質(zhì)押業(yè)務(wù)合作協(xié)議3篇
- 2025年硫代硫酸鹽項(xiàng)目發(fā)展計(jì)劃
- 第2課 第二次鴉片戰(zhàn)爭(解析版)
- 部編版五年級(jí)語文上冊(cè)第六單元教案(共6課時(shí))
- 鉆井與完井工程-第一章-鉆井與完井工程概述
- (新版)工業(yè)機(jī)器人系統(tǒng)操作員(三級(jí))職業(yè)鑒定理論考試題庫(含答案)
- 食材配送服務(wù)方案(技術(shù)方案)
- 課件:《中華民族共同體概論》第一講 中華民族共同體基礎(chǔ)理論
- 2024-2025學(xué)年安徽省合肥市蜀山區(qū)數(shù)學(xué)四年級(jí)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 離婚協(xié)議書模板可打印(2024版)
- 2024國家開放大學(xué)電大??啤东F醫(yī)基礎(chǔ)》期末試題及答案試卷號(hào)2776
- 廠區(qū)保潔服務(wù)投標(biāo)方案【2024版】技術(shù)方案
- 養(yǎng)老機(jī)構(gòu)績效考核及獎(jiǎng)勵(lì)制度
- 龍巖市2022-2023學(xué)年七年級(jí)上學(xué)期期末生物試題【帶答案】
評(píng)論
0/150
提交評(píng)論