微機(jī)原理何小海版習(xí)題解答-第4章_第1頁
微機(jī)原理何小海版習(xí)題解答-第4章_第2頁
微機(jī)原理何小海版習(xí)題解答-第4章_第3頁
微機(jī)原理何小海版習(xí)題解答-第4章_第4頁
微機(jī)原理何小海版習(xí)題解答-第4章_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

微機(jī)原理與接口技術(shù)第4章習(xí)題解答第1題假設(shè)程序中的數(shù)據(jù)定義如下:PARTNODW?PNAMEDB16DUP(?) COUNTDD?PLENTHEQU$-PARTNO則PLENTH=

,它的意義是

。答案PLENTH=22意義:PARTNO、PNAME、COUNT三個(gè)變量所占的空間大小或字節(jié)數(shù)No.01第2題假設(shè)有下面的數(shù)據(jù)定義:BUFFERDB?STRINGDW20DUP(?) TABLEDB‘ABCD’則下列指令單獨(dú)執(zhí)行后,有關(guān)寄存器的內(nèi)容是多少?答案MOVAX,TYPEBUFFER AX=1

MOVAX,TYPESTRING AX=2MOVAX,LENGTHSTRING AX=20MOVAX,LENGTHTABLE AX=1MOVAX,SIZESTRING AX=40No.02第3題計(jì)算下列程序分別執(zhí)行后AX寄存器的內(nèi)容。No.03(1) MOV AX,0 MOV BX,2345H TEST BX,1000H JZ NEXT INC AXNEXT:HLTAX=0第3題(2) MOVAX,0 XOR BX,BXAGAIN:INCBX ADDAX,BX CMPBX,10 JB AGAIN HLTAX=(((((0+1)+2)+3)….+10)=55No.03第3題(3) TABLEDB10,20,30,40,50INDEXDW2……LEABX,TABLE ADDBX,INDEX MOVAX,[BX] HLTAX=281EHNo.03第3題(4) MOVAX,0 MOVBX,0ABCDH MOVCX,16AGAIN:SHLBX,1JNCNEXTINC AXNEXT:LOOPAGAIN HLTAX=10No.03第3題(5)

MOVAL,0FFH CBW INC AX INC AX XCHGAH,AL SHR AH,1 RCR AL,1 HLTAX=0080HNo.03第4題若在自1000H單元開始有一個(gè)1000個(gè)字節(jié)的數(shù)據(jù)塊,要把它傳送到自1200H開始的存儲區(qū)中去,用以下三中方法,分別編制程序:(1)

不用串操作指令。(2)用單個(gè)傳送的串操作數(shù)據(jù)傳送指令。(3)用帶重復(fù)前綴的串操作數(shù)據(jù)傳送指令。No.04第4題No.04Y循環(huán)結(jié)束?修改地址指針SI←源數(shù)據(jù)塊末地址DI←目的數(shù)據(jù)塊末地址CX←循環(huán)次數(shù)修改CXAL←DS:[SI]ES:[DI]←AL結(jié)束Nagain第4題DATA SEGMENT ORG 1000HN1 DB 1000dup(?)N2 EQU 1200H+1000–1CON EQU 1000DATA ENDSSTACKSEGMENT STACK ‘STACK’ DW 100DUP(?)STACKENDSCODESEGMENT

ASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATA MOV DS,AXNo.04第4題 MOV ES,AX LEA SI,N1+1000–1 MOVDI,N2 MOVCX,CONL1: MOVAL,[SI] MOV[DI],AL DECSI DECDI LOOPL1 MOVAH,4CH INT21HCODEENDS END STARTNo.04STDMOVSBLOOPL1STDREPMOVSB

第5題自100H單元開始,有100個(gè)無符號數(shù)(字節(jié)),編寫程序計(jì)算這100個(gè)數(shù)的和,并把和存放在1971H和1972H單元,且高位存放在1972H單元。No.05第5題No.05定義數(shù)據(jù)段初始化DS獲取數(shù)據(jù)地址SI0AX100CXAX+[SI]AXSI+1SIAXSUM循環(huán)結(jié)束NY結(jié)束第5題STACKSEGMENTSTACK‘STACK’DW64DUP(?)STACKENDSDATASEGMENTORG100HNUMDB100DUP(?)ORG1971HSUMDW?DATAENDSCODESEGMENTASSUMECS:SEGMENT,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXNo.05第5題 LEASI,NUMMOVCX,100XORAX,AXL1:ADDAL,[SI]

ADCAH,00HINCSILOOPL1MOVSUM,AXMOVAH,4CHINT21HCODEENDSENDSTARTNo.05第6題編寫程序,計(jì)算下列函數(shù)值。

X+5 當(dāng)X<0Y=4X 當(dāng)0≤X≤3004X-10 當(dāng)X>300No.06第6題No.06開始結(jié)束(AX)<0?X(AX)(AX)>300?Y(AX)+5Y4*(AX)-10Y4*(AX)YYNN第6題No.06DATA SEGMENT X DW-5Y DW ?DATA ENDSSTACKSEGMENT STACK‘STACK’ DW 100DUP(?)STACK ENDS

CODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AX

MOVAX,XCMPAX,0JSL1

;X<0轉(zhuǎn)L1

CMPAX,300JGL2

;X>300轉(zhuǎn)L2第6題No.06SHLAX,1SHLAX,1

;X×4

JMPSTOP

L2:SHLAX,1SHLAX,1SBBAX,10 ;4×X-10

JMPSTOP

L1:ADDAX,5 ;X+5

STOP:MOVY,AX

MOVAH,4CH INT21H CODE ENDS ENDSTART

第7題已知A、B、C三個(gè)變量,編程完成如下處理:

(1)若三個(gè)數(shù)均為0,則設(shè)置變量D為1;

(2)若三個(gè)數(shù)均不為零,則求這三個(gè)數(shù)的算術(shù)和,并存放在變量E中。No.07第7題No.07A=0?取A→AX,B→BX,C→CXB=0?C=0?B!=0?C!=0?YYYNNY1→D結(jié)束A+B+C→E開始o(jì)neNNdoneNY第7題No.07 DATASEGMENT ADW? BDW? CDW? DDW? EDW? DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATASTART: MOVAX,DATA MOVDS,AX MOVAX,A MOVBX,B MOVCX,C第7題No.07 CMPAX,0 JNZone CMPBX,0 JNZdone CMPCX,0 JNZdone MOVD,1 JMPdoneone: CMPBX,0 JZdone CMPCX,0 JZdone ADDAX,BX ADDAX,CX MOVE,AX 第7題No.07done: MOVAH,4CH INT21HCODEENDSENDSTART第9題在0200H單元和020AH單元開始,分別存放兩個(gè)各為10個(gè)字節(jié)的未組合BCD數(shù)(地址最低出存放最低字節(jié))。編寫程序計(jì)算兩個(gè)未組合BCD數(shù)的和,且把和存放在0214H單元開始的存儲單元中。No.09第9題No.09初始化數(shù)據(jù)指針SI,DI,BX初始化循環(huán)次數(shù)CX開始CF清0取[SI]→ALAL+[DI]+CF→AL調(diào)整AAAAL→[BX]修正指針SI,DI,BX循環(huán)結(jié)束?結(jié)束NYCF=1?保存進(jìn)位Nagaindone第9題No.09 DATASEGMENT ORG200H SRC DB0,1,2,3,4,5,6,7,8,9 DST DB5,6,7,8,9,4,3,2,1,5 SUM DB11DUP(0) DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA SI,SRC LEA DI,DST LEA BX,SUM MOV CX,10 XOR AX,AX第9題No.09again: MOVAL,[SI] ADCAL,[DI] AAA MOV[BX],AL INCSI INCDI INCBX LOOPagain JNCdone MOVBYTEPTR[BX],1done: MOVAH,4CH INT21HCODEENDSENDSTART第10題若自STRING單元開始有1000個(gè)數(shù)(字節(jié)),試針對下面情況編程將它們中的最小值、最大值找出來,并分別存放在5000H和5001H字節(jié)單元中。(1)這1000個(gè)數(shù)為無符號數(shù)。(2)這1000個(gè)數(shù)為帶符號數(shù)。No.10第10題No.10 DATASEGMENT STRINGDB1000DUP(?) ORG5000H MINDB? MAXDB? DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,1000 LEA SI,STRING MOV AH,[SI] ;AH保存臨時(shí)最大值 MOV AL,AH ;AL保存臨時(shí)最小值

DEC CX 第10題No.10 INC SIagain: CMPAH,[SI] JAE next1 MOV AH,[SI]next1: CMP AL,[SI] JBE next2 MOV AL,[SI]next2: INC SI LOOPagain MOV MIN,AL MOV MAX,AH MOV AH,4CH INT 21HCODEENDSENDSTART

JLEJGE第11題No.11已知數(shù)組A包含10個(gè)互不相等的整數(shù),數(shù)組B包含15個(gè)互不相等的整數(shù),寫一程序,將既在A中出現(xiàn)又在B中出現(xiàn)的偶數(shù)存放在數(shù)組C中。第11題No.11初始化數(shù)據(jù)指針SI,BX初始化循環(huán)次數(shù)CX取AL←[SI]lop1AL為偶數(shù)?N初始化循環(huán)次數(shù)DX初始化數(shù)據(jù)指針DIAL=[DI]?修改指針DI和循環(huán)次數(shù)DXDX=0?保存結(jié)果修正指針BX修改SI,CX循環(huán)結(jié)束?結(jié)束NNYYYYNnext2lop2next1第11題No.11 DATASEGMENT ADB10DUP(?) BDB15DUP(?) CDB10DUP(?) DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,10 LEA SI,A LEA BX,Clop1: MOV AL,[SI] TEST AL,01H JNZ next2第11題No.11 MOV DX,15 LEA DI,Blop2: CMP AL,[DI] JZ next1 INC DI DEC DX JNZ lop2 JMP next2next1: MOV [BX],AL INC BXnext2: INC SI LOOP lop1 MOV AH,4CH INT 21HCODEENDSENDSTART

第13題統(tǒng)計(jì)STRING字符串中數(shù)字字符(‘0’~’9’)的個(gè)數(shù),并將數(shù)字字符放入BUFFER區(qū)內(nèi)(開始單元存放字符個(gè)數(shù))。No.13第13題No.13初始化數(shù)據(jù)指針SI,DI初始化循環(huán)次數(shù)CX,個(gè)數(shù)BL取AL←[SI]againAL≥‘0’?N保存數(shù)字字符并修正DIBL←BL+1循環(huán)結(jié)束?NYYYNAL≤‘9’?修正SI、CX結(jié)束next保存結(jié)果第13題No.13 DATASEGMENT STRINGDB100DUP(?) BUFFERDB101DUP(?) DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV CX,100 LEA SI,STRING LEA DI,BUFFER INC DI MOV BL,0again: MOV AL,[SI]

第13題No.13 CMP AL,‘0’ JB next CMP AL,‘9’ JA next INC BL MOV [DI],AL INC DInext: INC SI LOOP again MOV BUFFER,BL MOV AH,4CH INT 21HCODEENDSENDSTART

第19題若自STRING開始有一個(gè)字符串(以‘$’作為字符串的結(jié)束標(biāo)志)。請編程查找此字符串中有多少個(gè)‘?!€(gè)數(shù)存放在NUMBER字單元中,且把每一個(gè)‘?!址娣诺钠频刂贩诺阶訮OINTER開始的連續(xù)存儲字單元中。No.19第19題No.19初始化數(shù)據(jù)指針SI,DI初始化個(gè)數(shù)NUMBER取AL←[SI]againAL=‘$’?N保存偏移地址并修正DINUMBER←NUMBER+1NYYAL=‘#’?修正SI結(jié)束nextdone第19題No.19 DATASEGMENT STRINGDB‘FAER#DFFD#MDF2’,‘$’ POINTERDW100DUP(?) NUMBERDW? DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATASTART: MO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論