




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
./第一章1、在8086變址尋址方式中,操作數(shù)的物理地址等于〔A.段寄存器左移四位加上變址寄存器的容B.段寄存器左移四位加上變址寄存器的容再加上給定的偏移量C.段寄存器左移四位加上變址寄存器的容再加上基址寄存器的容D.段寄存器左移四位加上基址寄存器的容再加上給定的偏移量2、段地址為3900H,偏移地址為5200H,則物理地址為〔A.8B00HB.3E200HC.44200HD.55900H3、8086能尋址存儲器的最址圍為〔A.64KBB.1MBC.16MBD.16KB4、取指令的物理地址=〔A.<DS>10H+偏移地址B.<ES>10H+偏移地址C.<SS>10H+<SP>D.<CS>10H+<IP>表1-2和AD0編碼的含義5、8086CPU的控制線=0,地址線A0=0,CPU<>A.從偶地址開始完成8位數(shù)據(jù)傳送B.從偶地址開始完成16位數(shù)據(jù)傳送C.從奇地址開始完成8位數(shù)據(jù)傳送D.從奇地址開始完成16位數(shù)據(jù)傳送6、8086CPU在執(zhí)行MOVAL,[BX]指令的總線周期,若BX存放的容為2034H,和A0的狀態(tài)為〔A.0,1B.0,0C.1,1D.1,07、8086工作在最小模式下,當(dāng)M/IO#=0,RD#=0,WR#=1時,CPU完成的操作是〔A.存儲器讀B.I/O讀C.存儲器寫D.I/O寫8、8086CPU有最小和最大兩種工作模式,最大模式的特點是〔A.需要總線控制器8288B.由編程進行模式設(shè)定C.不需要8286收發(fā)器D.CPU提供全部的控制信號9、CPU與外設(shè)之間交換信息,一般有〔A.地址信息B.數(shù)據(jù)信息C.控制信息D.狀態(tài)信息E.中斷類型碼10、8086/8088CPU工作在最小方式對存儲器進行寫操作有關(guān)的控制信號〔A.M/IO#B.WR#C.ALED.INTA#E.DT/R#11、如果8088/8086CPU的工作時鐘CLK=4MHZ,請問:a、CPU正常工作時,Reset引腳至少出現(xiàn)多少微秒的高電平才能使CPU復(fù)位?b、在插入一個Tw的情況下,從存讀出一個字節(jié)數(shù)據(jù)需要的時間是多少?答:〔1由于時鐘為4MHZ,一個時鐘周期為1/4=0.25微秒;CPU完成復(fù)位操作需要4個時鐘周期,所以4*0.25=1微秒。〔2再加上1個TW情況下,共需要5個時鐘周期,所以5*0.25=1.25微秒。12、當(dāng)總線請求部件收到〔①信號后,就獲得了總線控制權(quán);在其控制總線時期,HOLD和HLDA都保持〔②。當(dāng)總線部件用完總線后,HOLD變?yōu)榈碗娖?于是CPU又重新控制總線,并使HALD變?yōu)椤并邰貯.HOLDB.HALDC.INTRD.INTA②A.低電平B.高電平C.高阻態(tài)D.不變③A.低電平B.高電平C.高阻態(tài)D.不變13、8086CPU上電復(fù)位后,CS=<FFFFH>,IP=<0000H>,DS=<0000H>,SP=<0000H>14、8086CPU之所以能有力地提高工作效率,其原因之一是總線接口部件和執(zhí)行部件采用<并行>的工作方式。15、完成一個基本操作所用時間的最小單位是<時鐘周期>,通常稱它為一個<T>狀態(tài)。完成一次讀或?qū)懼辽傩枰?lt;4>個這樣的狀態(tài)。16、設(shè)DS:75存儲單元開始存放11H、22H、33H,若要求占用的總線周期最少,則要<2>條指令才能將這3個數(shù)據(jù)讀入到CPU中,這時占用<2>個總線周期。若執(zhí)行MOVAX,[75]后,則AH=<22H>,AL=<11H>第二章1.構(gòu)成4KB的存儲系統(tǒng),需要〔A.1024×4位的芯片8片B.2K×1位的芯片8片C.1024×8位的芯片2片D.16K×1位的芯片4片設(shè)存儲器的地址線為20條,存儲單元為字節(jié),使用全譯碼方式組成存儲器,該系統(tǒng)構(gòu)成最大容量需要64K×1位的存儲器芯片的數(shù)量是<>A.16B.32C.64D.1283.已知一個SRAM芯片的容量力8K×8,該芯片有一個片選信號引腳和一個讀/寫控制引腳,問該芯片至少有多少個引腳?地址線多少條?數(shù)據(jù)線多少條?還有什么信號線?答:根據(jù)存儲芯片地址線數(shù)量計算公式,k=log2〔1024*8=log2〔213=13,即總計有13根地址線。另有8根數(shù)據(jù)線、2根電源線。所以該芯片至少有25〔=13+8+1+1+2根引腳。巳知一個DRAM芯片外部引腳信號中有4條數(shù)據(jù)線,7條地址線,計算它的容量。答:根據(jù)存儲容量計算公式S=2k×I,可得該芯片的存儲容量為:214*4=16K×4bit〔位,也可表示為64Kb=8KB〔字節(jié)5.組成8K字節(jié)的存儲器,需要256×4位的存儲器芯片〔。A.32片B.64片C.16片D.50片6.74LS138譯碼器的接線如圖2-28所示,寫出Y0、Y2、Y4、Y6所決定的存地址圍。答:從圖看出,該存儲系統(tǒng)的片地址線有13根〔A12-A0,是一個由8KB存儲芯片組成的存儲系統(tǒng),A17地址線不確定。它的地址分布為:00?0,CBA?,????,????,????其中,CBA作為譯碼輸入,與輸出選擇有關(guān);"?"表示可以為"0",也可以為"1"。于是:0Y對應(yīng)的存地址圍是:00000H—01FFFH;或20000H—21FFFH。2Y對應(yīng)的存地址圍是:04000H—05FFFH;或24000H—25FFFH。4Y對應(yīng)的存地址圍是:08000H—09FFFH;或28000H—29FFFH。6Y對應(yīng)的存地址圍是:0C000H—0DFFFH;或2C000H—2DFFFH7.斷電后所存儲信息會丟失的存儲器是〔A.ROMB.RAMC.CD-ROMD.FLASH-MEMORY8.需要定期刷新的存儲器類型為<>A.靜態(tài)存儲器B.動態(tài)存儲器C.只讀存儲器D.易失性存儲器9.EPROM是指<>A.只讀存儲器B.可編程的只讀存儲器C.可擦除可編程的只讀存儲器D.電可改寫只讀存儲器10.某一SRAM芯片其容量為2KB,除電源和接地線之外,該芯片引線的最小數(shù)目是<>A.24B.26C.20D.2211.有一個存儲體,其地址線15條,數(shù)據(jù)線為8條,則 1該存儲體能夠存儲多少個漢字? 2如果該存儲體由2K×4位的芯片組成,需要多少片? 3采用什么方法擴展?分析各位地址線的使用。答:1該存儲體容量為215×8=32KB,存儲一個漢字需要兩個字節(jié),因此,它能夠存儲16384〔16K個漢字。2需要2K×4位的芯片32片,[〔32K×8/〔2K×4=32]。3可采用字位全擴展方法,由2片4位的芯片組成1組8位的存儲單元,16組擴展成32K的8位存儲體。芯片直接使用的地址線〔片地址11根〔A0~A10,另外需要4根高位地址,連接到4-16譯碼輸入端,產(chǎn)生16個譯碼信號用作16個芯片的片選信號。剩余的地址線用來確定該存儲體的首地址。12.利用全地址譯碼將6264芯片接到8088系統(tǒng)總線上,地址圍為30000H~31FFFH,畫出邏輯圖。答:全地址譯碼可以保證存儲器芯片上的每一個單元在整個存空間中具有唯一的、獨占的一個地址。6264芯片有13根地址線,剩余的高位7根地址線通過譯碼組合確定該芯片的起始地址〔30000H。.由30000H地址得出對應(yīng)的地址線狀態(tài)為:00110000000000000000可以看出A13~A19地址線為0011000,所以譯碼組合應(yīng)邏輯為:=···A16·A17··=〔·····〔A16·A17=A13+A14+A15+A18+A19+A16·A1713.若用2164芯片構(gòu)成容量為128KB的存儲器,需多少片2164?至少需多少根地址線?其中多少根用于片尋址?多少根用于片選譯碼?答:2164A是容量為64K×1位的地圖隨機存儲器芯片,構(gòu)成128KB的存儲器需要2164芯片16片[128K×8/〔64K×1=16]。由于地址空間為128K,需要的地址線總線為17根〔217=28根。其中,片地址線16根〔216=64K,片選地址線1根〔17—16=1。每8個2164芯片構(gòu)成一組,進行位擴展,得到64KB存儲器。兩個這樣的"組"進行地址擴展,構(gòu)成128KB的存儲器。14.某8088系統(tǒng)用2764ROM芯片和6264SRAM芯片構(gòu)成16KB的存。其中,RAM的地址圍為FC000H-FDFFFH,ROM的地址圍為FE000H-FFFFFH。試?yán)?4LS138譯碼,畫出存儲器與CPU的連接圖,并標(biāo)出總線信號名稱。答:2764和6264均為8KB的存儲芯片,需要13根地址線〔A0~A12用于片尋址。8080系統(tǒng)的其他地址線〔A13~A19用于產(chǎn)生片選信號。FC000H的地址線狀態(tài)為:11111100000000000000FE000H的地址線狀態(tài)為:11111110000000000000將A13~A15用作譯碼輸入,其他地址〔A16~A19=1111用作譯碼控制,可以得到如下譯碼控制電路,連接如下圖所示:15.存儲周期指的是〔。A.存儲器進行連續(xù)讀或?qū)懖僮魉试S的最短時間間隔B.存儲器的讀出周期 C.存儲器進行連續(xù)寫操作所允許的最短時間間隔D.存儲器的寫入周期16.某一EPROM芯片,其容量為32K×8,除電源和地線外,最小的輸入引腳和輸出引腳分別為〔。 A.15和8; B.32和8; C.17和8; D.18和10;17.掩膜ROM在制造時通過光刻是否連接MOS管來確定0和1,如果對應(yīng)的某存儲單元位沒有連接MOS管,則該位信息為〔。 A.不確定; B.0; C.1; D.可能為0,也可能為118.SRAM和DRAM存儲原理不同,它們分別靠〔來存儲0和1的。A.雙穩(wěn)態(tài)觸發(fā)器的兩個穩(wěn)態(tài)和極間是否有足夠的電荷 B.部熔絲是否斷開和雙穩(wěn)態(tài)觸發(fā)器 C.極間電荷和浮置柵是否積累足夠的電荷 D.極間是否有足夠的電荷和雙穩(wěn)態(tài)觸發(fā)器的兩個穩(wěn)態(tài)第三章3.1如果用24b儲存一個無符號數(shù),這個數(shù)的圍是什么?如果儲存的是一個補碼表示的有符號數(shù),那么這個數(shù)的圍又是什么?答:如果用24b儲存一個無符號數(shù),這個數(shù)的圍應(yīng)為:0~2-1如果用24b儲存一個補碼表示的有符號數(shù),這個數(shù)的圍應(yīng)為:-2~2-13.2用符號">"把下面的數(shù)按從大到小的順序"連接"起來[X1]補=10110111[X2]原=10110111[X3]反=1011011[X4]補=10110110[X5]無符號數(shù)=10110111解:X1=-0100
1001B,
X2=-011
0111B,
X3=-0100
1000B,
X4=-0100
1010B,
X5=+1011
0111B
因此:X5>X2>X3>X1>X43.3用8位補碼完成下列運算,用十進制"真值"的格式給出運算結(jié)果,并指出運算后CF、OF、ZF、SF、PF標(biāo)志位的狀態(tài)。〔1127+126〔2126-127〔3-100-120〔4-100-<-120>解:〔1[127]=01111111,[126]=01111110,[127+126]=11111101,[127+126]=-00000011〔溢出COZSP=01010〔2[126]=01111110,[-127]=10000001,[126-127]=11111111,[126-127]=-0000001,COZSP=10011〔3-[-100]=10011100,[-120]=10001000,[-100-120]=00100100,[-100-120]=+00100100〔溢出,COZSP=01001〔4[-100]=10011100,[-120]=10001000,[-100-<-120>]=00010100,[-100-<-120>]=+00010100,COZSP=000013.4把二進制代碼11000分別"看作"是:〔1二進制無符號數(shù)〔2二進制補碼〔3壓縮BCD碼〔4非壓縮BCD碼哪一種情況下它代表的"值"最大?答:看做二進制無符號數(shù)時,它代表的"值"最大。分析:看作二進制補碼時,它代表一個負(fù)數(shù),而其他的情況下,它均正數(shù)。因此,看作二進制補碼時,它代表的值最小。把這組代碼用十六進制數(shù)字形式寫出:9758對于無符號數(shù),它的值等于十六進制的9758H;對于壓縮BCD碼,它的值等于十六進制的9758,顯然小于9758H;對于非壓縮BCD碼,它的值等于十進制的78,顯然更小于9758H;因此,看作二進制無符號數(shù)時,它代表的"值"最大。1EH30H41H42H43H0FFH00H0CAH1EH30H41H42H43H0FFH00H0CAH0020HXX db 30,30H,‘ABC’,2-3,?,11001010B dw 0FFH,-2,"CD"Y dd 20dup〔15,3dup〔?,0Z db 3dup〔?W dw Z-X假設(shè)變量X的偏移地址為20H?!?寫出變量X各數(shù)據(jù)在存中的具體位置和相關(guān)存單元的值。0FFH00H0FEH0FFH44H43H〔20FFH00H0FEH0FFH44H43H〔3寫出變量W的值。答:〔1變量X各數(shù)據(jù)在存中的具體位置和相關(guān)存單元的值如右圖。〔2變量Y的偏移地址為002H;變量Z的偏移地址為002EH+4520=01BEHY002EH〔3變量W的值等變量Z和X偏移地址之差01BEH-0020H=019EHY002EH它等于X、Y所占用存單元的字節(jié)數(shù)。3.6下列指令的源操作數(shù)段基址在哪個段寄存器中?〔1MOV AX,[BP][SI] SS〔2MOV AX,CS:8[DI]CS〔3MOV AX,2[EBP*1]SS〔4MOV AX,FS:4[ESP]FS〔5MOV AX,2[EBP][EAX]SS〔6MOVAX,[ECX][EBP*4]DS〔7MOC AX,[EDX][EBP]DS〔8MOVAX,ES:10[EBP][EAX*2]ES3.7判斷下列指令是否正確。若不正確,指出錯誤原因〔1MOV AX,[EBX] √〔2MOV SI,DL×,兩個操作數(shù)類型不匹配?!?MOV EBP,[ESP][EAX*3]×,比例因子不能為3?!?LEA AX,3006H×,LEA指令的源操作數(shù)必須為存操作數(shù)?!?MOV [BP][DI],0×,操作數(shù)類型無法確定。〔6MOV [SI],[DI]是×,不能同時出現(xiàn)兩個存操作數(shù)?!?MOV ES,1000H×,裝載段寄存器時,源操作數(shù)不能為立即數(shù)?!?如果"X"是常數(shù)表達式定義的符號〔例如:XEQU5+6,或者是"DW"定義的存變量,指令MOV AX,X+2是正確的。否則這條指令是錯誤的?!?MOVAX,CX+2 ×,源操作數(shù)表達式CX+2不是一個可以直接計算的"常數(shù)表達式"?!?0指令MOV [EAX][EAX*2],AL√3.8 現(xiàn)有〔DS=2000H,〔BX=0100H,〔SI=0002H,〔20100H=12H,〔20101H=34H,〔20102H=56H,〔20103H=78H,〔21200H=2AH,〔21201H=4CH,〔21202H=0B7H,〔21203H=65H,說明下列指令執(zhí)行后AX寄存器的容〔1MOV AX,1200H執(zhí)行后,〔AX=1200H〔立即操作數(shù)?!?MOV AX,BX執(zhí)行后,〔AX=0100H〔寄存器操作數(shù)?!?MOV AX,[1200H]執(zhí)行后,〔AX=4C2AH〔直接地址,EA=1200H〔4MOV AX,[BX]執(zhí)行后,〔AX=3412H〔寄存器間接尋址,EA=0100H〔5MOV AX,1100H[BX]執(zhí)行后,〔AX=4C2AH〔相對地址,EA=1200H〔6MOV AX,[BX][SI]執(zhí)行后,〔AX=7856H〔基址變址尋址,EA=0102H〔7MOV AX,1100H[BX][SI]執(zhí)行后,〔AX=65B7H〔相對基址變址尋址EA=1202H3.9下面兩條指令的功能有什么區(qū)別?MOV AX,BX:把BX寄存器的容裝入到AX中。MOVAX,[BX]:把存儲器一個字的容裝入AX寄存器。該字的段基址在DS中,偏移地址在BX中。3.10寫出執(zhí)行以下計算的指令序列,各變量均為16位有符號數(shù)。〔1
Z←W+<Z-X>〔2
Z←W-<X+6>-<R+9>〔3
Z←<W*X>/<Y+6>,R←余數(shù)〔4
Z←<W-X>/<5*Y>*2解:.〔1MOVAX,WMOVBX,ZSUBBX,XADDAX,BXMOVZ,AX..〔2MOVAX,WMOVBX,XADDBX,6SUBAX,BXMOVBX,RADDBX,9SUBAX,BXMOVZ,AX..〔3MOVAX,WIMULXMOVBX,YADDBX,9IDIVBXMOVZ,AXMOVR,DX..〔4MOVAX,YMOVBX,5IMULBXMOVBX,AXMOVAX,WSUBAX,XMOVCX,2IMULCXIDIVBXMOVZ,AX.3.11一個雙字長有符號數(shù)存放在DX〔高位AX〔低位中,寫出求該數(shù)相反數(shù)的指令序列。結(jié)果仍存入DX,AX寄存器。.解:NOTDXNOTAXADDAX,1ADCDX0.3.12存緩沖區(qū)BUFFER定義如下,按照要求,寫出指令序列 BUFFER DB 20DUP<?>〔1將緩沖區(qū)全部置為0,并使執(zhí)行時間最短?!?將緩沖區(qū)全部置為空格字符〔ASCII代碼20H,使用的指令條數(shù)最少〔3將緩沖區(qū)各字節(jié)依次設(shè)置為0,1,2,3,4,……,19〔4將緩沖區(qū)各字節(jié)依次設(shè)置為0,-1,-2,-3,-4,……,-19〔5將緩沖區(qū)各字節(jié)依次設(shè)置為30,29,28,27,……,11〔6將緩沖區(qū)各字節(jié)依次設(shè)置為0,2,4,6,8,……,38〔7將緩沖區(qū)各字節(jié)依次設(shè)置為0,1,2,3,0,1,2,3,…,3.解:〔1XOREAX,EAXMOVDWORDPTR[BUFFER],EAXMOVDWORDPTR[BUFFER+4],EAXMOVDWORDPTR[BUFFER+8],EAXMOVDWORDPTR[BUFFER+12],EAXMOVDWORDPTR[BUFFER+16],EAX..〔2MOVAL,20HMOVCX,20LEABX,BUFFERONE:MOV[BX],BUFFERINCBXLOOPONE..〔3XORBX,BXMOVCX,20ONE:MOVBUFFER[BX],BLINCBXLOOPONE..〔4XORBX,BXXORALMOVCX,20ONE:MOVBUFFER[BX],ALINCBXDECALLOOPONE..〔5XORBX,BXMOVAL,30MOVCX,20ONE:MOVBUFFER[BX],ALINCBXDECALLOOPONE..〔6XORBX,BXXORALMOVCX,20ONE:MOVBUFFER[BX],ALINCBXADDAL,2LOOPONE..〔7XORBX,BXMOVCX,5ONE:MOVBUFFER[BX],0MOVBUFFER[BX+1],1MOVBUFFER[BX+2],2MOVBUFFER[BX+3],3ADDBX,4LOOPONE.3.13編寫循環(huán)結(jié)構(gòu)程序,進行下列計算,結(jié)果存入RESULT單元〔11+2+3+4+5+6+……+100〔21+3+5+7+9+11+……+99〔32+4+6+8+10+……+100〔41+4+7+10+13+……+100〔511+22+33+44+……+99.解:〔1
CODE
SEGMENT
ASSUME
CS:
CODE
RESULT
DW
?
START:
XOR
AX,
AX
MOV
CX,
100
AGAIN:
ADD
AX,
CX
LOOP
AGAIN
MOV
RESULT,
AX
MOV
AX,
4C00H
INT
21H
CODE
ENDS
END
START
..〔2CODE
SEGMENT
ASSUME
CS:
CODE
RESULT
DW
?
START:
XOR
AX,
AX
MOV
CX,
50
MOV
BX,
1
AGAIN:
ADD
AX,
BX
ADD
BX,
2
LOOP
AGAIN
MOV
RESULT,
AX
MOV
AX,
4C00H
INT
21H
CODE
ENDS
END
START
..〔3
CODE
SEGMENT
ASSUME
CS:
CODE
RESULT
DW
?
START:
XOR
AX,
AX
MOV
CX,
50
MOV
BX,
2
AGAIN:
ADD
AX,
BX
ADD
BX,
2
LOOP
AGAIN
MOV
RESULT,
AX
MOV
AX,
4C00H
INT
21H
CODE
ENDSEND
START
..〔4
CODE
SEGMENT
ASSUME
CS:
CODE
RESULT
DW
?
START:
XOR
AX,
AX
MOV
CX,
34
MOV
BX,
1
AGAIN:
ADD
AX,
BX
ADD
BX,
3
LOOP
AGAIN
MOV
RESULT,
AX
MOV
AX,
4C00H
INT
21H
CODE
ENDSEND
START
..〔5
CODE
SEGMENT
ASSUME
CS:
CODE
RESULT
DW
?
START:
XOR
AX,
AX
MOV
CX,
9
MOV
BX,
11
AGAIN:
ADD
AX,
BX
ADD
BX,
11
LOOP
AGAIN
MOV
RESULT,
AX
MOV
AX,
4C00H
INT
21H
CODE
ENDS
END
START.3.14已知ARRAY是5行5列的有符號字?jǐn)?shù)組,編寫程序,進行下列計算〔假設(shè)和仍然為16b,不會產(chǎn)生溢出〔1
求該數(shù)組每一行上第4列元素之和〔列號從0開始〔2
求該數(shù)組第3行所有元素之和〔行號從0開始〔3
求該數(shù)組正對角線上所有元素之和〔4
求該數(shù)組反對角線上所有元素之和解:假設(shè)數(shù)據(jù)段已定義如下:.DATA
SEGMENT
ARRAY
DW
1,
6,
9,
23,12
;定義數(shù)組ARRAY
DW
54,
23,
15,
-92,
37
;每一行5個數(shù)據(jù)DW
-99,
231,
76,
81,
90
;共5行DW
33,
67,
81,
-99,
0
;共計25個數(shù)據(jù)DW
123,
-52,
77,
-180,
89
SUM
DW
?
;SUM存放結(jié)果DATA
ENDS
..CODE
SEGMENT
ASSUME
CS:
CODE,
DS:
DATA
START:
MOV
AX,
DATA
MOV
DS,
AX
MOV
AX,
0
;累加器在循環(huán)之前清零MOV
CX,
5
;計數(shù)器置初值MOV
SI,
4*2
;第1行第4列元素在數(shù)組的位移NEXT:
ADD
AX,
ARRAY[SI]
ADD
SI,
5*2
;SI指向下一行第4列元素LOOP
NEXT
MOV
SUM,
AX
MOV
AX,
4C00H
INT
21H
CODE
ENDS
END
START
..CODE
SEGMENT
ASSUME
CS:
CODE,
DS:
DATA
START:
MOV
AX,
DATA
MOV
DS,
AX
MOV
AX,
0
;累加器在循環(huán)之前清零MOV
CX,
5
;計數(shù)器置初值MOV
SI,
3*5*2
;第3行第0列元素在數(shù)組的位移NEXT:
ADD
AX,
ARRAY[SI]
ADD
SI,
2
;SI指向本行下一列元素LOOP
NEXT
MOV
SUM,
AX
MOV
AX,
4C00H
INT
21H
CODE
ENDS
END
START..CODE
SEGMENT
ASSUME
CS:
CODE,
DS:
DATA
START:
MOV
AX,
DATA
MOV
DS,
AX
MOV
AX,
0
;累加器在循環(huán)之前清零MOV
CX,
5
;計數(shù)器置初值MOV
SI,
0
NEXT:
ADD
AX,
ARRAY[SI]
ADD
SI,
5*2+2
LOOP
NEXT
MOV
SUM,
AX
MOV
AX,
4C00H
INT
21H
CODE
ENDS
END
START
..CODE
SEGMENT
ASSUME
CS:
CODE,
DS:
DATA
START:
MOV
AX,
DATA
MOV
DS,
AX
MOV
AX,
0
MOV
CX,
5
MOV
SI,
4*2
NEXT:
ADD
AX,
ARRAY[SI]
ADD
SI,
<5-1>*2
LOOP
NEXT
MOV
SUM,
AX
MOV
AX,
4C00HINT
21H
CODE
ENDS
END
STAR.3.15變量X,Y,Z均為一字節(jié)壓縮BCD碼表示的十進制數(shù),寫出指令序列,求它們的和〔用2字節(jié)壓縮BCD碼表示。.解:
XOR
AX,
AXMOV
AL,
X
ADD
AL,
Y
;完成X+Y
DAA
;壓縮BCD碼加法調(diào)整ADC
AH,
0
ADD
AL,
Z
;完成X+Y+Z
DAA
;壓縮BCD碼加法調(diào)整ADC
AH,
0.3.16設(shè)〔BX=0E3H,變量VALUE中存放容為79H,指出下列指令單獨執(zhí)行后的結(jié)果?!?指令"XOR
BX,
VALUE"執(zhí)行后,〔BX=
009AH
〔2指令"AND
BX,
VALUE"執(zhí)行后,〔BX=
0061H
〔3指令"OR
BX,
VALUE"執(zhí)行后,〔BX=
00FBH
〔4指令"XOR
BX,
0FFH"執(zhí)行后,〔BX=
001CH
〔5指令"AND
BX,
BX"執(zhí)行后,〔BX=
00E3H
〔6指令"AND
BX,
0"執(zhí)行后,〔BX=
0000H3.17編寫程序,從鍵盤上輸入20個十進制數(shù)字,求這些數(shù)字的和,向顯示器輸出。答:.INCLUDE
YLIB.H
DATA
SEGEMNT
MESS1
DB
0DH,
0AH,
?Input
20
decimal
digits
please
:
$?MESS2
DB
0DH,
0AH,
?Their
sum
is
:
$?
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:
CODE,
DS:
DATA
START:
MOV
AX,
DATA
MOV
DS,
AX
LEA
DX,
MESS1
MOV
AH,
09H
INT
21H
;輸出提示信息XOR
BX,
BX
;BX用作累加器,清零MOV
CX,
20
;循環(huán)計數(shù)器置初值A(chǔ)GAIN:
MOV
AH,
01H
INT
21H
;輸入一個數(shù)字〔在AL中AND
AL,
0FH
;轉(zhuǎn)換成二進制數(shù)ADD
BL,
AL
;累加ADC
BH,
0
LOOP
AGAIN
LEA
DX,
MESS2
MOV
AX,
BX
CALL
WRITEDEC
;輸出20個數(shù)字的和CALL
CRLF
MOV
AX,
4C00H
INT
21H
CODE
ENDSEND
START.3.18閱讀以下程序,指出它的功能。.MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL.答:把32位二進制代碼〔DX,
AX聯(lián)合左移4位。3.19已知〔DX=0B9H,〔CL=3,〔CF=1,確定下列指令單獨執(zhí)行以后DX寄存器的值?!?指令"SHR
DX,
1"執(zhí)行之后,〔DX=
005CH
〔2指令"SAR
DX,
CL"執(zhí)行之后,〔DX=
0017H
〔3指令"SHL
DX,
CL"執(zhí)行之后,〔DX=
05C8H
〔4指令"SHL
DL,
1"執(zhí)行之后,〔DX=
0172H
〔5指令"ROR
DX,
CL"執(zhí)行之后,〔DX=
2017H
〔6指令"ROL
DX,
CL"執(zhí)行之后,〔DX=
05C8H
〔7指令"SAL
DH,
1"執(zhí)行之后,〔DX=
00B9H
〔8指令"RCL
DX,
CL"執(zhí)行之后,〔DX=
05CCH
〔9指令"RCR
DL,
1"執(zhí)行之后,〔DX=
00DCH3.20編寫程序,從鍵盤上輸入一個0~65535之間的十進制無符號數(shù),然后用二進制格式輸出這個值。例如,鍵盤輸入"35",顯示器輸出"0000000000100011"。答:.INCLUDE
YLIB.H
DATA
SEGEMNT
MESS1
DB
0DH,
0AH,
?Input
a
unsigned
decimal
integer
number
please
:
$?
MESS2
DB
0DH,
0AH,
?The
number
in
binary
is
:
$?
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:
CODE,
DS:
DATA
START:
MOV
AX,
DATA
MOV
DS,
AX
LEA
DX,
MESS1
CALL
READDEC
;輸入一個無符號整數(shù)MOV
BX,
AX
;轉(zhuǎn)存入BX
LEA
DX,
MESS2
MOV
AH,
09H
INT
21H
;輸出提示信息MOV
CX,
16
;循環(huán)計數(shù)器置初值A(chǔ)GAIN:
SHL
BX,
1
;向左外移一位,進入CF
MOV
DL,
30H
ADC
DL,
0
;形成一位二進制數(shù)字的ASCII代碼MOV
AH,
2
INT
21H
;輸出一個二進制數(shù)字LOOP
AGAIN
;循環(huán)16次CALL
CRLF
MOV
AX,
4C00H
INT
21H
CODE
ENDS
END
START.3.21無符號數(shù)變量X用DD定義,編寫程序,用十六進制格式輸出變量X的值。.答:
386
DATA
SEGEMNT
USE16
X
DD
36895471
;一個32B長整數(shù)MESS
DB
0DH,
0AH,
?The
X
in
hexdecimal
is
:
$?
HEXTAB
DB
?0123456789ABCDEF?
DATA
ENDS
CODE
SEGMENT
USE16
ASSUME
CS:
CODE,
DS:
DATA
START:
MOV
AX,
DATA
MOV
DS,
AX
LEA
DX,
MESS
MOV
AH,
09H
INT
21H
;輸出前導(dǎo)信息MOV
ESI,
X
;將X存入ESI
MOV
CX,
8
;循環(huán)計數(shù)器置初值LEA
BX,
HEXTAB
;換碼表首地址裝入BX
AGAIN:
ROL
ESI,
4
;把最高4位移到最低4位上MOV
AX,
SI
;低8位轉(zhuǎn)入AL
AND
AX,
0004H
;清除高4位XLAT
;轉(zhuǎn)換成十六進制數(shù)字的ASCII代碼MOV
DL,
ALMOV
AH,
2
INT
21H
;輸出一個十六進制數(shù)字LOOP
AGAIN
;循環(huán)16次MOV
AX,
4C00H
INT
21H
CODE
ENDS
END
START.3.22編寫指令序列,把AX中的16b二進制分為4組,每組4b,分別置入AL,BL,CL,DL中。.答:
MOV
DX,
AX
;最低4位直接進入DX
MOV
CX,
4
ROL
AX,
CL
;最高4位移入最低4位PUSH
AX
;壓入堆棧保存〔準(zhǔn)備送入AL
ROL
AX,
CL
;次高4位移入最低4位MOV
BX,
AX
;送入BL
ROL
AX,
CL
;第3組4位移入最低4位MOV
CX,
AX
;送入CL
POP
AX
;從堆棧中彈出原最高4位AND
AX,
000FH
;清除高12位AND
BX,
000FH
;清除高12位AND
CX,
000FH
;清除高12位AND
DX,
000FH
;清除高12位.1、I/O設(shè)備與CPU之間交換信息,其狀態(tài)信息是通過_B___總線傳送給CPU的。A.地址B.數(shù)據(jù)C.控制D.三者均可2.8086/8088微處理器可尋址的最大I/O空間為〔CA.8KBB.32KBC.64KBD.1MB3.CPU與I/O設(shè)備交換信息,無需要傳送〔D信息。A.數(shù)據(jù)B.狀態(tài)C.控制D.地址4.I/O單獨編址方式下,從端口輸入數(shù)據(jù)可使用<C>。A.MOVB.OUTC.IND.XCHG5.CPU對外部設(shè)備的訪問實質(zhì)是對<B>的訪問。A.接口B.I/O端口C.I/O設(shè)備D.接口電路6.8086/8088對10H端口進行寫操作,正確指令是<A>。A.OUT10H,ALB.OUT[10H],C.OUTAL,10HD.OUTAL,[10H]7.設(shè)計輸入輸出接口電路時,輸入接口電路的關(guān)鍵器件是〔三態(tài)緩沖器;輸出接口電路的關(guān)鍵器件是<鎖存器>。8.可用作簡單輸入接口的電路是〔D。A.譯碼器B.鎖存器C.方向器D.三態(tài)緩沖器9.判斷:接口的基本功能是輸入鎖存,輸出緩沖?!?0.I/O端口的獨立編址方式特點有<B>。A.地址碼較長B.需用專用I/O指令C.只需要存儲器存取指令D.譯碼電路簡單11.I/O端口的編址方式一般有<I/O獨立編址>和<統(tǒng)一編址>兩種。12.從硬件角度看,采用硬件最少的數(shù)據(jù)傳送方式是<B>A.DMA控制B.無條件傳送C.查詢傳送D.中斷傳送13.DMA方式是主機與外設(shè)之間傳送數(shù)據(jù)的一種方式,他是在<DMAC>的控制下,<存儲器>與<外部設(shè)備>之間直接進行數(shù)據(jù)交換。14.從輸入設(shè)備向存輸入數(shù)據(jù)時,若數(shù)據(jù)不需要經(jīng)過CPU,其I/O數(shù)據(jù)傳送控制方式是<C>。A.程序查詢方式B.中斷方式C.DMA方式D.直接傳送方式15.主機與外設(shè)之間有三種傳送方式,中斷方式的主要優(yōu)點是<D>.A.接口電路簡單、經(jīng)濟需要硬件少B.傳送速度快C.CPU時間利用率最高D.能實時響應(yīng)I/O設(shè)備請求16.寫出主機與外圍設(shè)備之間數(shù)據(jù)交換的4種方式:<無條件傳送>,<查詢式傳送>,<中斷方式傳送>和<直接存儲器存取方式>。17.微機系統(tǒng)中,主機與外設(shè)之間交換信息通常采用<程序>,<中斷>和<DMA>方式。18.8086CPU工作在DMA方式有關(guān)的兩個引腳是<HOLD>和<HLDA>19.一個接口電路的基本功能包括<設(shè)備選擇功能>,<信息傳輸功能>,<數(shù)據(jù)格式轉(zhuǎn)換功能>。20.8086CPU工作在DMA方式時,其AD0-15引腳處于<高阻狀態(tài)>第四章4.1什么是"三種基本結(jié)構(gòu)"?解釋"基本"兩個字在其中的含義。答:三種基本結(jié)構(gòu)指:順序結(jié)構(gòu),選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。
使用這3種結(jié)構(gòu),可以編制出任何所需要的程序,因此冠以"基本"結(jié)構(gòu)。4.2什么叫做"控制轉(zhuǎn)移指令"?它和數(shù)據(jù)傳送、運算指令有什么區(qū)別?它是怎樣實現(xiàn)它的功能的?答:控制轉(zhuǎn)移指令是可以改變指令執(zhí)行順序的指令。數(shù)據(jù)傳送、運算指令總是順序執(zhí)行的,而控制轉(zhuǎn)移指令通過改變IP和/或CS寄存器的值,改變了程序指令的執(zhí)行順序。4.3指令"JMPDI"和"JMPWORPTR[DI]"作用有什么不同?請說明。答:上述兩條指令都是段近轉(zhuǎn)移指令,但是偏移地址的來源不同。指令"JMP
DI"執(zhí)行時,新的偏移地址在DI寄存器,"JMP
WORD
PTR
[DI]"時,目的偏移地址在存儲單元中,該存儲單元的地址在DS:
DI中。4.4已知〔AX=836BH,X分別取下列值,執(zhí)行"CMPAX,X"后,標(biāo)志位ZF、CF、OF、SF各是什么?〔1X=3000H 〔2X=8000H〔3X=7FFFFH〔4X=0FFFFH 〔5X=0答:上述指令執(zhí)行后,標(biāo)志位ZF、CF、OF、SF的狀態(tài)分別是:〔1ZCOS=0010〔2ZCOS=0000〔3ZCOS=0010〔4ZCOS=0101〔5ZCOS=00014.5已知〔AX=836BH,X分別取下列值,執(zhí)行"TESTAX,X"后,標(biāo)志位ZF、CF、OF、SF各是什么?〔1X=0001H 〔2X=8000H〔3X=0007H〔4X=0FFFFH 〔5X=0 答:上述指令執(zhí)行后,標(biāo)志位ZF、CF、OF、SF的狀態(tài)分別是:〔1ZCOS=0000〔2ZCOS=0001〔3ZCOS=0000〔4ZCOS=0001〔5ZCOS=10004.6測試名為X的一個字節(jié),如果X的第1,3位均為1,轉(zhuǎn)移到L1,如果只有一位為1,轉(zhuǎn)移到L2,如果兩位全為0,轉(zhuǎn)移到L3。寫出對應(yīng)的指令序列。.答:MOVAL,XANDAL,00001010BJZL3CMPAL,00001010BJEL1JMPL2.4.7假設(shè)X和X+2字單元存放有雙精度數(shù)P,Y和Y+2字單元存放有雙精度數(shù)Q,下面程序完成了什么工作?. MOV DX,X+2 MOV AX,X ADD AX,X ADC DX,X+2 CMP DX,Y+2 JL L2 JG L1 CMP AX,Y JBE L2L1: MOV Z,1 JMP SHORTEXITL2: MOV Z,2EXIT:…….答:程序根據(jù)2P與Q的大小,確定Z的值。如果2P≤Q,則Z=2如果2P>Q,則Z=14.8編寫指令序列,將AX和BX中較大的絕對值存入AX,較小的絕對值存入BX。.答:ANDAX,AXJGESKIP1NEGAXSKIP1:ANDBX,BXJGESKIP2NEGBXSKIP2:CMPAX,BXJGESKIP3XCHGAX,BXSKIP3:…….4.9編寫指令序列,比較AX、BX中的數(shù)的絕對值,絕對值較大的數(shù)存入AX,絕對值較小的數(shù)存入BX。.答:PUSHAXPUSHBXANDAX,AXJGESKIP1NEGAXSKIP1:ANDBX,BXJGESKIP2NEGBXSKIP2:CMPAX,BXPOPBXPOPAXJGESKIP3XCHGAX,BXSKIP3:…….4.10編寫指令序列,如果AL寄存器存放的是小寫字母,把它轉(zhuǎn)換成大寫字母,否則不改變AL容。.答:CMPAL,‘a(chǎn)’JBDONECMPAL,‘z’JADONESUBAL,‘a(chǎn)’-‘A’DONE:…….4.11計算分段函數(shù):X的值從鍵盤輸入,Y的值送顯示器輸出。.答:INCLUDEYLIB.HDATASEGEMNTMESS1DB0DH,0AH,?InputvalueofXplease:$?MESS2DB0DH,0AH,?Y=:$?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,MESS1CALLREADINTCMPAX,-2JGEL2L1:SUBAX,3;AX←X-3JMPDONEL2:CMPAX,3JGL3MOVBX,AXADDAX,AX;AX←2XADDAX,AX;AX←4XADDAX,BX;AX←5XADDAX,6;AX←5X+6JMPDONEL3:MOVAX,2;AX←2DONE:LEADX,MESS2CALLWRITEINTCALLCRLFMOVAX,4C00HINT21HCODEENDSENDSTART.4.12計算分段函數(shù):A,B的值從鍵盤輸入,Y的值送顯示器輸出〔∧表示"并且",∨表示"或者"。.答:INCLUDEYLIB.HDATASEGEMNTMESS1DB0DH,0AH,?InputthevalueofAplease:$?MESS2DB0DH,0AH,?InputthevalueofBplease:$?MESS3DB0DH,0AH,?Y=:$?ADW?BDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,MESS1CALLREADINTMOVA,AXLEADX,MESS2CALLREADINTMOVB,AXANDAX,AXJLL1;B<0,轉(zhuǎn)L1CMPA,0JLL1;A<0,轉(zhuǎn)L1JNZSKIP1CMPB,0JZL2;A=0&&B=0,轉(zhuǎn)L2JMPEXITSKIP1:CMPB,0JLEEXITL3:MOVAX,ASUBAX,BJMPDISPL2:MOVAX,2JMPDISPL1:MOVAX,AADDAX,BDISP:LEADX,MESS2CALLWRITEINTCALLCRLFEXIT:MOVAX,4C00HINT21HCODEENDSENDSTART.說明:如果把A、B看作是平面直角坐標(biāo)的兩根軸,那么這個函數(shù)在A,B的正軸上無定義。無法計算,也無法輸出結(jié)果4.13編寫程序,求10元素字?jǐn)?shù)組LIST中絕對值最小的數(shù),存入MIN單元。.答:DATASEGEMNTLISTDW-56,+12,88,-126,-5,16,32,-99,72,-18MINDW?MINABSDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,LISTMOVMIN,AXMOVMINABS,32767LEASI,LISTMOVCX,10AGAIN:MOVAX,[SI]CMPAX,0JGESKIP1NEGAXSKIP1:CMPAX,MINABSJGESKIP2MOVMINABS,AXMOVAX,[SI]MOVMIN,AXSKIP2:ADDSI,2LOOPAGAINMOVAX,4C00HINT21HCODEENDSENDSTART.說明:一定要預(yù)設(shè)最小的絕對值和絕對值最小的數(shù),而且這個絕對值最小的數(shù)必須來自LIST數(shù)組。4.14編寫程序,求20元素?zé)o符號字?jǐn)?shù)組ARRAY中最小的奇數(shù),存入ODD單元,如果不存在奇數(shù),將ODD單元清零。.答:DATASEGEMNTARRAYDW56,12,88,126,5,16,32,99,72,18DW116,34,92,32,156,42,816,16,15,218ODDDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,0MOVODD,65535LEASI,ARRAYMOVCX,20AGAIN:MOVAX,[SI]TESTAX,1JZSKIPINCBXCMPAX,ODDJGESKIPMOVODD,AXSKIP:ADDSI,2LOOPAGAINCMPBX,0JNZDONEMOVODD,0DONE:MOVAX,4C00HINT21HCODEENDSENDSTART.4.15一個有符號字?jǐn)?shù)組以0為結(jié)束標(biāo)志,求這個數(shù)組的:最大值、最小值、平均值。.答: DATA SEGEMNT LIST DW -56,+12,88,-126,-5,16,32,-99,72,-18,0 MIN DW ? MAX DW ? AVG DW ?DATA ENDS CODE SEGMENTASSUMECS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AXMOV MIN,32767MOV MAX,-32768MOV AVG,0LEA SI,LISTMOV CX,0AGAIN: MOV AX,[SI]CMP AX,0JZ DONEINC CXADD AVG,AXCMP AX,MINJGE SKIP1MOV MIN.AXSKIP1: CMP AX,MAXJLE SKIP2 MOV MAX,AX SKIP2: ADDSI,2 JMP AGAIN DONE: JCXZNULL MOV AX,AVG CWD IDIV CX MOV AVG,AX JMP EXIT NULL: MOV MIN,0 MOV MAX,0 MOV AVG,0EXIT: MOV AX,4C00H INT 21H CODE ENDS END START.4.16數(shù)組SCORE中存有一個班級40名學(xué)生的英語課程成績。按照0~59,60~74,75~84,85~100統(tǒng)計各分?jǐn)?shù)段人數(shù),存入N0,N1,N2,N3變量。.答: DATA SEGEMNTSCORE DW 40 DUP<?> N0 DW ? N1 DW ? N2 DW ? N3 DW ?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOVAX,DATA MOV DS,AX MOV N0,0MOV N1,0MOV N2,0MOV N3,0LEA SI,SCOREMOV CX,40AGAIN: MOV AX,[SI]CMPAX,59JA L1 L0: INC N0 JMPNEXT L1: CMP AX,74 JA L2 INC N1 JMP NEXT L2: CMP AX,84 JA L3 INC N2 JMP NEXT L3: CMP AX,100 JA NEXT INC N3 NEXT: ADD SI,2 LOOP AGAINEXIT: MOV AX,4C00H INT 21H CODE ENDS END START.4.17STRING是一個16個字符組成的字符串,RULE是一個字整數(shù)。編寫程序,測試STRING中的每一個字符,如果該字符為數(shù)字字符,把RULE中對應(yīng)位置1,否則置0。.答: DATA SEGEMNT STRINGDB 16DUP<?> RULE DW ? DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV RULE,0LEA SI,STRINGMOV CX,16 AGAIN: SHL RULE,1MOV AL,[SI]CMPAL,’0’JB NEXTCMP AL,‘9JA NEXTOR RULE,11 NEXT: INC SI LOOP AGAINEXIT: MOV AX,4C00H INT 21H CODE ENDS END START.4.18編寫程序,從鍵盤上輸入一個無符號字整數(shù),用"四進制"格式輸出它的值〔也就是,每2位二進制看作一位四進制數(shù),使用數(shù)字0~3。.答: INCLUDE YLIB.HDATA SEGEMNT MESS1 DB 0DH,0AH,‘Inputanumberplease:$’ MESS2 DB 0DH,0AH,‘Thenumberinquardri_systemis:$’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA DX,MESS1 CALL READDEC MOVBX,AX;轉(zhuǎn)存到BX LEA DX,MESS2 MOV AH,9 INT 21H MOV CX,8 ONE: ROL BX,1 ROL BX,1 MOV DL,BL AND DL,00000011B OR DL,30H MOV AH,2 INT 21H LOOP ONE CALL CRLFMOV AX,4C00HINT 21H CODE ENDS END START.4.19編寫程序,把一個30個元素的有符號字?jǐn)?shù)組ARRAY按照各元素的正負(fù)分別送入數(shù)組P和M,正數(shù)和零元素送P數(shù)組,負(fù)數(shù)送M數(shù)組。.答: DATA SEGEMNTARRAY DW 30DUP<?>P DW 30DUP<?> M DW30DUP<?>DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA BX,ARRAY MOV SI,0 MOV DI,0 MOV CX,30 ONE: MOV AX,[BX] AND AX,AL JGE PLUS MINUS: MOV M[DI],AX ADD DI,2 JMP NEXTPLUS: MOV P[SI],AX ADD SI,2 NEXT: ADD BX,2 LOOP ONEMOV AX,4C00H INT 21H CODE ENDS END START.4.20緩沖區(qū)BUFFER中存放有字符串,以00H為結(jié)束標(biāo)志。編寫程序,把字符串中的大寫字母轉(zhuǎn)換成小寫字母。.答: DATA SEGEMNTBUFFER DB ‘AStringforTest.’,0 DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AXLEA BX,BUFFER ONE: MOV AL,[BX] AND AL JZ QUIT CMP AL,‘A’ JB NEXT CMP AL,‘Z’ JA NEXT ADD AL,‘a(chǎn)’-‘A’ MOV [BX],AL NEXT: INC BX JMP ONE QUIT: MOV AX,4C00H INT 21H CODE ENDS END START.4.21編寫程序,從鍵盤上輸入無符號字整數(shù)X,Y的值,進行X+Y的運算,然后按以下格式顯示運算結(jié)果和運算后對應(yīng)標(biāo)志位的狀態(tài)。SUM=XXXXZF=X,OF=X,SF=X,CF=X.答: INCLUDE YLIB.H CODE SEGMENTASSUME CS:CODE MESS1 DB 0DH,0AH,‘Inputaunsignedintegerplease:$’MESS2 DB 0DH,0AH,‘SUM=$’MESS3 DB 0DH,0AH,‘ZF=’ZF DB ?DB ‘,OF=’OF DB ?DB ‘,SF=’SF DB ?DB ‘,CF=’CF DB ?DB 0DH,0AH,‘$’START:PUCHCS POP DS LEA DX,MESS1 CALL READDEC MOV CX,AXLEA DX,MESS1CALL READDEC ADD AX,CX PUSHF LEA DX,MESS2 CALL WRITEDEC POP BX MOV AL,‘0 TEST BX,1000000B JZ SKP1 INC AL SKIP1: MOV ZF MOV AL,‘0 TESTBX,0B JZ SKP2 INC AL SKIP2: MOV OF,ALMOV AL,‘0TEST BX,10000000B JZ SKP3 INC AL SKIP3: MOV SF,ALMOV AL,‘0 TEST BX,1 JZ SKP4 INC AL SKIP4: MOV CF,AL LEA DX,MESS3 MOV AH,9 INT 21H MOV AX,4C00H INT 21H CODE ENDS END START.4.22編寫程序,從鍵盤上輸入一個字符串,統(tǒng)計其中數(shù)字字符,小寫字母,大寫字母,空格的個數(shù)并顯示。.答:INCLUDE YLIB.H CODE SEGMENTASSUME CS:CODE MESS1 DB 0DH,0AH,‘Inputastringplease:$’ BUFFER DB 81,?,81DUP<?>MESS2DB 0DH,0AH,‘Digits:$’MESS3 DB 0DH,0AH,‘Uppercasealphabet:$’MESS4 DB 0DH,0AH,‘Lowercasealphabet:$’MESS5 DB 0DH,0AH,‘Space:$’START:POSHCS POP DS LEA DX,MESS1MOV AH,09H INT 21HLEA DX,BUFFER MOV AH,0AH INT 21H XOR DX,DX XOR BX,BX MOV CL,BUFFER+1 MOV CH,0 LEA SI,BUFFER+2 ONE: MOV AL,[SI]CMP AL,‘‘ JNE L2 L1: INC DL JMP NEXT L2: CMP AL,‘0 JB NEXTCMP AL,‘9 JA L4 L3: INC DH JMP NEXT L4: CMP AL,‘A’ JB NEXT CMP AL,‘Z’ JA L6L5: INC BHJMP NEXT L6: CMP AL,‘a(chǎn)’ JB NEXT CMP AL,‘z’ JA NEXT INC BLNEXT: INC SI LOOP ONEPUSH DX MOV AL,DHLEA DX,MESS2 MOV AH,0 CALL WRITEDECLEA DX,MESS4 MOV AL,BL MOV AH,0 CALL WRITEDECLEA DX,MESS3 MOV AL,BH MOV AH,0 CALL WRITEDECPOP DX MOV AL,DL MOV AH,0LEA DX,MESS5 CALL WRITEDEC MOV AX,4C00H INT 21H CODE ENDS END START.4.23編寫程序,讀入20個數(shù)據(jù),統(tǒng)計每個相同數(shù)據(jù)出現(xiàn)的次數(shù)。.答: INCLUDE YLIB.HDATA SEGEMNTNUMBER DW 20DUP<?>TIMES DW 20DUP<?>MESS DB 0DH,0AH,‘InputanumberofNO.$’ DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AXLEASI,NUMBER MOV CX,20 MOV BX,1 INPUT: LEA DX,MESS MOV AX,BX CALLWRITEDEC MOV DX,-1 CALLREADDEC MOV [SI],AL INC BX ADD SI,2LOOP INPUT LEA BX,TIMES MOV CX,20INIT: MOV BYTEPTR[BX],-1 ADD BX,2LOOP INIT MOV DI,0 MOV CX,20 STAT0: PUSH CX MOV CX,20 MOV SI,0 MOV AL,NUMBER[DI]STAT1: CMP AL,NUMBER[SI] JNE SKIP INC TIMES[DI] SKIP: ADD SI,2LOOP STAT1 POP CX ADD DI,2LOOP STAT0MOV AX,4C00H INT 21H CODE ENDS END START.4.24編寫程序,打印九九乘法表。.答: INCLUDE YLIB.H CODE SEGMENT ASSUME CS:CODE SPACE DB ‘$’ START: CALL CRLFMOV SI,1 MOV CX,9 LOOP0: PUSH CX MOV CX,9 MOV DI,1 LOOP1: MOV AX,SI MUL DI MOV DX,-1 CMP AX,10 JAE SKIP LEA DX,SPACE SKIP: CALLWRITEDECINCDILOOP LOOP1 CALL CRLFIINCSI POP CXLOOP LOOP0 MOV AX,4C00H INT 21H CODE ENDS END START.4.25編寫程序,顯示1000以的所有素數(shù)。.答: INCLUDE YLIB.H CODE SEGMENTASSUME CS:CODE START: CALL CRLFMOV SI,2 MOV CX,0 ONE: MOV DI,SI SHR DI,1 MOV BX,2 TST: CMP BX,DI JA OK MOV AX,SI CWD DIV BX CMP DX,0 JZ NEXT INC BX JMP TST OK: INC CXCMP CX,10 JLE OUTPUT XOR CX,CX CALL CRLF OUTPUT:MOV DX,-1 MOV AX,SI CALL WRITEDEC NEXT: INC SI CMP SI,1000 JB ONE CALL CRLF MOV AX,4C00H INT 21H CODE ENDS END START.4.26編寫程序,輸入N,計算:S=1×2+2×3+……+<N-1>×N.答: INCLUDE YLIB.HCODE SEGMENT ASSUME CS:CODE MESS1 DB 0DH,0AH,‘InputNplease:$’MESS2 DB 0DH,0AH,‘S=$’ START:PUSH CS POP DSLEA DX,MESS1CALL READDECMOV CX,AXXOR BX,BX ONE: MOV AX,CX MOV SI,AX DEC SI MUL SI ADD BX,AX LOOP ONELEA DX,MESS2 MOV AX,BX CALL WRITEDEC CALL CRLF MOV AX,4C00H INT 21H CODE ENDS END START.4.27編寫程序,輸入N,輸出如下矩陣〔設(shè)N=5 11111 22221 33321 44321 54321.答:設(shè)I為行〔1~5,J為列〔1~5,則〔I,J位置上的數(shù)據(jù)為:I>〔6-J?I:6-J。INCLUDE YLIB.HCODE SEGMENT ASSUME CS:CODESTART:CALL CRLFMOV SI,1 ROW: MOV CX,5COL: CMP SI,CX JB UP DOWN: MOV AX,CX JMP OUTPUT UP: MOV AX,SI OUTPUT:MOV DX,-1 CALL WRITEDEC LOOP COL CALL CRLF INC SI CMP SI,5 JBE ROW MOV AX,4C00H INT 21H CODE ENDS END START.4.28
根據(jù)下面條件,畫出每次調(diào)用子程序或返回時的堆棧狀態(tài)。〔1主程序調(diào)用NEAR屬性的SUB1子程序,返回的偏移地址為1200H.〔2進入SUB1后調(diào)用NEAR屬性的SUB2子程序,返回的偏移地址為2200H.〔3進入SUB2后調(diào)用FAR屬性的SUB3子程序,返回的段基址為4000H,偏移地
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 窄軌機車車輛設(shè)計與人文因素考核試卷
- 硅冶煉生產(chǎn)質(zhì)量管理與質(zhì)量檢測考核試卷
- 管道工程行業(yè)政策支持與機遇考核試卷
- 罐裝水銷售合同管理與法律風(fēng)險考核試卷
- 賽事期間的賽場氣象服務(wù)與應(yīng)急措施考核試卷
- 舞臺燈光設(shè)備在馬戲團表演中的應(yīng)用考核試卷
- 漆器工藝品的網(wǎng)絡(luò)營銷策略考核試卷
- 船舶拆除作業(yè)人員安全培訓(xùn)考核試卷
- 輸送設(shè)備智能傳感網(wǎng)絡(luò)構(gòu)建與優(yōu)化考核試卷
- 新能源汽車換電站項目投資與建設(shè)管理合同
- 2025上海房屋租賃合同模板
- T-SCSTA001-2025《四川省好住房評價標(biāo)準(zhǔn)》
- 2025-2030全球及中國可持續(xù)飛機能源行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報告
- 農(nóng)村留守兒童教育支持體系構(gòu)建研究
- 車場管理考試試題及答案
- 福建省三明市2025年普通高中高三畢業(yè)班五月質(zhì)量檢測物理(三明四檢)
- 中國數(shù)據(jù)中心產(chǎn)業(yè)發(fā)展白皮書023年
- 西部計劃面試題及答案
- 腫瘤科病歷書寫規(guī)范
- 糞便標(biāo)志物篩選策略-全面剖析
- 崗位就業(yè)協(xié)議書范本
評論
0/150
提交評論