杭電微機(jī)原理第三章【習(xí)題】_第1頁(yè)
杭電微機(jī)原理第三章【習(xí)題】_第2頁(yè)
杭電微機(jī)原理第三章【習(xí)題】_第3頁(yè)
杭電微機(jī)原理第三章【習(xí)題】_第4頁(yè)
杭電微機(jī)原理第三章【習(xí)題】_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《微機(jī)原理與接口技術(shù)》習(xí)題第三章作業(yè)習(xí)題及答案杭州電子科技大學(xué)自動(dòng)化學(xué)院1/12/202312.

已知DS=1000H,BX=0200H,SI=0002H,內(nèi)存

10200H~10205H單元的內(nèi)容分別為10H,2AH,3CH,46H,59H,6BH。下列每條指令執(zhí)行完后AX寄存器的內(nèi)容是什么?

(1)MOVAX,0200H;

AX=0200H

(2)MOVAX,[200H]

物理地址=1000H×10H+200H=10200H,AX=2A10H

(3)MOVAX,BX;

AX=0200H

(4)MOVAX,3[BX];

物理地址=1000H×10H+0200H+3H=10203H,AX=5946H

(5)MOVAX,[BX+SI]

物理地址=1000H×10H+0200H+2H=10202H,AX=463CH

(6)MOVAX,2[BX+SI]

物理地址=1000H×10H+0200H+0002+2H=10204H,AX=6B59H6B59463C2A1010200H1/12/202323.

設(shè)DS=1000H,ES=2000H,SS=3500H,SI=00A0H,DI=0024H,BX=0100H,BP=0200H,數(shù)據(jù)段變量名為VAL的偏移地址值為0030H,試說(shuō)明下列原操作數(shù)字段的尋址方式是什么?物理地址值是什么?

(1)MOVAX, [100H]

直接尋址方式,10100H

(2)MOVAX, VAL

直接尋址方式,10030H

(3)MOVAX, [BX]

寄存器間接尋址,10100H

(4)MOVAX, ES:[BX]

寄存器間接尋址,20100H

(5)MOVAX, [SI]

寄存器間接尋址,100A0H

(6)MOVAX, [BX+10H]

寄存器相對(duì)尋址,10110H

(7)MOVAX, [BP]

寄存器間接尋址,35200H

(8)MOVAX, VAL[BP][SI]

相對(duì)基址變址尋址,352D0H

(9)MOVAX, VAL[BX][DI]

相對(duì)基址變址尋址,10154H

(10)MOVAX, [BP][DI]

基址變址尋址,35224H1/12/20233(1)MOVDL,AX

錯(cuò),寄存器尋址方式中,目的操作數(shù)與源操作數(shù)長(zhǎng)度必須一致(2)MOV8650H,AX

錯(cuò),目的操作數(shù)不可以是立即數(shù)(3)MOVDS,0300H

錯(cuò),MOV指令不允許將立即數(shù)傳入段寄存器(4)MOV[BX],[1200H]

錯(cuò),MOV指令的兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器(5)MOVIP,0FFH

錯(cuò),IP不能作為MOV指令的目的操作數(shù)(6)MOV[BX+SI+3],IP

錯(cuò),IP不能作為MOV指令的源操作數(shù)(7)MOVAX,[BX][BP]

錯(cuò),BX與BP使用的段寄存器不同,不可以同時(shí)出現(xiàn)在源操作數(shù)當(dāng)中(8)MOVAL,ES:[BP]

對(duì)6.

指出下列指令中那些是錯(cuò)誤的,錯(cuò)在什么地方?1/12/20234(9)MOVDL,[SI][DI]

錯(cuò),SI與DI是兩個(gè)變址寄存器,不可以同時(shí)出現(xiàn)在源操作數(shù)中(10)MOVAX,OFFSET0A20H

錯(cuò),OFFSET后面跟的應(yīng)該是符號(hào)地址,再把符號(hào)地址的值作為操作數(shù)(11)MOVAL,OFFSETTABLE

錯(cuò),TABLE的偏移地址是16位,目的與源長(zhǎng)度不一致(12)XCHGAL,50H

錯(cuò),交換指令可以在寄存器之間,寄存器和存儲(chǔ)器之間進(jìn)行,不可以是立即數(shù)(13)INBL,05H

錯(cuò),BL不能作為IN指令的目的操作數(shù),只能用AL和AX(14)OUTAL,0FFEH

錯(cuò),端口地址0FFEH>FFH,應(yīng)用DX間接尋址,同時(shí)源操作數(shù)和目標(biāo)操作數(shù)的位置顛倒了,應(yīng)改為OUTDX,AL。1/12/202358.已知當(dāng)前SS=1050H,SP=0100H,AX=4860H,BX=1287H,試用示意圖表示執(zhí)行下列指令過(guò)程中,堆棧中內(nèi)容和堆棧指針SP是怎樣變化的。1050:00001050:0100SPAX=4860HBX=1287H1)執(zhí)行PUSHAX之前2)執(zhí)行PUSHAX之后60481050:00001050:0100AX=4860HBX=1287HSP1050:00FEPUSU AXPUSH BXPOP BXPOP AX1/12/2023612604887SPAX=4860HBX=1287H3)執(zhí)行PUSHBX之后1050:00001050:01001050:00FE1050:00FC12604887AX=4860HBX=1287H4)執(zhí)行POPBX之后SP1050:00001050:01001050:00FE1050:00FC12604887AX=4860HBX=1287H5)執(zhí)行POPAX之后SP1050:00001050:01001050:00FE1050:00FC1/12/202379.下列指令完成什么功能?(1)ADDAL,DH;加法運(yùn)算,將寄存器AL和DH內(nèi)容相加后的結(jié)果存入AL中;(2)ADCBX,CX;帶進(jìn)位加法運(yùn)算,將寄存器BX和CX以及進(jìn)位位CF內(nèi)容相加后的結(jié)果存入BX中;(3)SUBAX,2710H;減法運(yùn)算,將寄存器AX的內(nèi)容減去立即數(shù)2710H后的結(jié)果存放到AX中;(4)DECBX;減1運(yùn)算,將寄存器BX內(nèi)容減1后的結(jié)果存入BX中;(5)NEGCX;取負(fù)運(yùn)算,將寄存器CX內(nèi)容取負(fù)后的結(jié)果存入CX中;(6)INCBL;加1運(yùn)算,將寄存器BL內(nèi)容加1后的結(jié)果存入BL中;(7)MULBX;無(wú)符號(hào)數(shù)乘法運(yùn)算,將寄存器AX和BX的內(nèi)容相乘后的結(jié)果存放到AX(低位)和DX(高位)中;(8)DIVCL;無(wú)符號(hào)數(shù)除法運(yùn)算,將寄存器AX的內(nèi)容除以寄存器CL中的內(nèi)容,商存放在AL中,余數(shù)存放在AH中。1/12/20238AF(AuxiliaryFlag):輔助進(jìn)位標(biāo)志位低4位向高4位進(jìn)位或借位時(shí),AF=1。標(biāo)志寄存器PSW1511109876543210OFDFIFTFSFZFAFPFCFCF(CarrvFlag):進(jìn)位標(biāo)志位

最高位有進(jìn)位或借位時(shí),CF=1。

PF

(ParityFlag):奇偶校驗(yàn)標(biāo)志位本次運(yùn)算結(jié)果中有偶數(shù)個(gè)“1”時(shí),PF=1;有奇數(shù)個(gè)“1”時(shí),PF=0。

ZF(ZeroFlag):全零標(biāo)志位本次運(yùn)算結(jié)果為0時(shí),ZF=1,否則ZF=0。SF(SignFlag):符號(hào)標(biāo)志位本次運(yùn)算結(jié)果的最高位為1時(shí),SF=1,否則SF=0。即反映了本次運(yùn)算結(jié)果是正還是負(fù)。OF(OverflowFlag):溢出標(biāo)志位

本次運(yùn)算過(guò)程中產(chǎn)生溢出時(shí),OF=1。對(duì)帶符號(hào)數(shù),字節(jié)運(yùn)算結(jié)果的范圍為-128~+127,字運(yùn)算結(jié)果的范圍為-32768~+32767,超過(guò)此范圍為溢出。1/12/2023910.已知AX=2508H,BX=0F36H,CX=0004H,DX=1864H,試求下列每條指令執(zhí)行后的結(jié)果是什么?標(biāo)記位等于什么?(1)ANDAH,CL

AH=04H,CF=0;(2)ORBL,30H

BL=36H,CF=0;(3)NOTAX

AX=DAF7H,CF無(wú)影響;(4)XORCX,0FFF0H

CX=FFF4H,CF=0;(5)TESTDH,0FH

TEST操作并不修改結(jié)果,CF=0;(6)CMPCX,00H

CMP操作并不修改結(jié)果,CF=0;(7)SHRDX,CL

DX=0186H,CF=0;(8)SARAL,1

AL=04H,CF=0;(9)SHLBH,CL

BH=F0H,CF=0;(10)SALAX,1

AX=4A10H,CF=0;(11)RCLBX,1

若程序執(zhí)行之前CF=0,BX=1E6CH,CF=0; 若程序執(zhí)行之前CF=1,BX=1E6DH,CF=0。

(12)RORDX,CL

DX=4186H,CF=0。

這些指令對(duì)CF,OF影響不大,主要是ZF,SF和PF1/12/202310*11.

假設(shè)數(shù)據(jù)段定義如下:

DATA SEGMENT STRINGDB‘Thepersonalcomputer&TV’ DATAENDS試用字符串操作等指令編程完成以下功能:【答】DATA SEGMENT STRINGDB‘Thepersonalcomputer&TV’ DATAENDSEDATASEGMENT GET_CHAR DB 26DUP(?) NEW_STR DB ‘Thecomputer’CAPSDB 10DUP(?)CHARTDB 26DUP(?)EDATAENDS1/12/202311(1)把該字符串傳送到附加段偏移量為GET_CHAR開(kāi)始的內(nèi)存單元中。

(例3-75)

MOV SI, OFFSETSTRING MOV DI, OFFSETGET_CHAR MOV CX, 001AH ;共26個(gè)字節(jié),包括空格

CLD ;清地址標(biāo)記位,地址增量

REP MOVSB

;重復(fù)傳輸各字節(jié),直到CX=0HLT1/12/202312(2)(例3-76)比較該字符串是否與“Thecomputer”相同,若相同則將AL寄存器的內(nèi)容置1,否則置0。并要求將比較次數(shù)送到BL寄存器中。

MOV SI, OFFSETSTRING MOV DI, OFFSETNEW_STR MOV

CX, 001AH CLD

REPZ CMPSB;DS:SI-ES:DI內(nèi)容相同,則重復(fù)

JNE CLR_AL;不同則轉(zhuǎn)

MOV AL, 1 JMPSET_BLCLR_AL: MOV AL, 0SET_BL: MOV BL, 001AH

SUB BL, CL HLT1/12/202313(3)(例3-77)檢查該字符串是否有“&”符,若有則用空格將其替換。

MOV DI, OFFSETSTRING MOV CX, 001AHMOV AL, ‘&’CLDL1: SCASB ;AL-ES:DI JZFIND;若題目要求找到后不用再找了,則可用NEXT: LOOP L1;REPNESCASB,就可以不用LOOPL1 HLTFIND:MOVBL,‘’

MOV[DI-1], BL ;用空格替換& JMPNEXT1/12/202314(4)(例3-78) 把字符串大寫(xiě)字母?jìng)魉偷礁郊佣沃幸訡APS開(kāi)始的單元中,其余字符傳送到以CHART開(kāi)始的單元中。然后將數(shù)據(jù)段中存儲(chǔ)上述字符串的單元清0。

MOV SI, OFFSETSTRING

;數(shù)據(jù)段,源串

MOV DI, OFFSETCAPS

;附加段,大寫(xiě)字符

MOV BX, OFFSETCHART

;附加段,其它字符

MOV CX, 001AH CLDL1: LODSB ;AL←DS:SI

MOV [SI-1], 00H ;取出字符后該單元清零

CMP AL, ‘A’ JB OTHER;若AL中字母<‘A’ CMP AL, ‘Z’ JA OTHER;若AL中字母>‘Z’

STOSB

;存大寫(xiě)字符

JMP L2OTHER:XCHG BX, DI ;存其它字符

STOSB XCHGBX, DIL2: LOOP L1 HLT1/12/202315*13.設(shè)CS=1200H,IP=0100H,SS=5000H,SP=0400H,DS=2000H,SI=3000H,BX=0300H,(20300)=4800,(20302)=00FFH,TABLE=0500H,PROG_N標(biāo)號(hào)的地址為1200:0278H,PROG_F標(biāo)號(hào)的地址為3400:0ABCH。說(shuō)明下列每條指令執(zhí)行完后,程序?qū)⒎謩e移到何處執(zhí)行?若將上述指令中的操作碼JMP該為CALL,則每條指令執(zhí)行完后,程序?qū)⒎謩e移到何處執(zhí)行?并請(qǐng)畫(huà)圖說(shuō)明堆棧中的內(nèi)容和堆棧指針如何變化。1/12/202316

(1)JMP PROG_N

段內(nèi)直接近轉(zhuǎn)移,目的地址為1200H:0278H(或12278H)(2)JMP BX

段內(nèi)寄存器間接轉(zhuǎn)移,目的地址為1200H:0300H(或12300H)(3)JMP [BX]

物理地址=DS×10H+BX=2000H×10H+0300H=20300H(20300H)=4800H

IP

段內(nèi)存儲(chǔ)器間接轉(zhuǎn)移,目的地址為1200H:4800H(或16800H)(4)JMP FAR PROG_F

段間立即直接轉(zhuǎn)移,目的地址為3400H:0ABCH(或34ABCH)

(5)JMP DWORD PTR[BX]

物理地址=DS×10H+BX=2000H×10H+0300H=20300H

(20300H)=4800HIP,(20302H)=00FFH

CS

段間存儲(chǔ)器間接轉(zhuǎn)移,目的地址為00FFH:4800H(或057F0H)1/12/202317JMP改為CALL后,目的地址與JMP相同。(1)CALL PROG_N

轉(zhuǎn)移到1200H:0278H(或12278H)處執(zhí)行,段內(nèi)直接調(diào)用,3字節(jié)指令,0103H入棧(2)CALL BX

轉(zhuǎn)移到1200H:0300H(或12300H)處執(zhí)行,段內(nèi)寄存器間接調(diào)用,2字節(jié)指令,0102H入棧(3)CALL [BX]

轉(zhuǎn)移到1200H:4800H(或16300H)處執(zhí)行,段內(nèi)存儲(chǔ)器間接調(diào)用,2字節(jié)指令,0102H入棧(4)CALL FAR PROG_F

轉(zhuǎn)移到3400H:0ABCH(或34ABCH)處執(zhí)行,段間直接調(diào)用,5字節(jié)指令,1200H和0105H分別入棧(5)CALL DWORD PTR[BX]

轉(zhuǎn)移到00FFH:4800H(或057F0H)處執(zhí)行,段間間接調(diào)用,2字節(jié)指令,1200H和0102H分別入棧1/12/20231811.編程將AX寄存器中的內(nèi)容以相反的次序傳送到DX寄存器中,并要求AX中的內(nèi)容不被破壞,然后統(tǒng)計(jì)DX寄存器中1的個(gè)數(shù)是多少個(gè)。START: MOV CX, 16;循環(huán)移位次數(shù)初值

MOVBX,0;計(jì)數(shù)DX中1的個(gè)數(shù)初值NEXT:ROL AXJNCSHIFT

INC BX

SHIFT: RCR DX LOOPNEXTMSBLSBCFMSBLSBCFROLAXRCRDX1/12/20231914.如在下面程序段的括號(hào)中分別填入以下指令:(1)LOOP NEXT

(2)LOOPE NEXT(相等循環(huán),即結(jié)果為0,即ZF=1,則循環(huán))(3)LOOPNE NEXT(不相等循環(huán),即結(jié)果為1,即ZF=0,則循環(huán))試說(shuō)明在這三種情況下,程序段執(zhí)行完后,AX,BX,CX,DX寄存器的內(nèi)容分別是什么?START: MOV AX, 01H MOV BX, 02H MOV DX, 03H MOV CX, 04HNEXT: INC AX ADD BX, AX SHR DX, 1 ( )

程序運(yùn)行前

DX=00000011B

1/12/20232014.如在下面程序段的括號(hào)中分別填入以下指令:(1)LOOP NEXT

(2)LOOPE NEXT(相等循環(huán),即結(jié)果為0,即ZF=1,則循環(huán))(3)LOOPNE NEXT(不相等循環(huán),即結(jié)果為1,即ZF=0,則循環(huán))試說(shuō)明在這三種情況下,程序段執(zhí)行完后,AX,BX,CX,DX寄存器的內(nèi)容分別是什么?START: MOV AX, 01H MOV BX, 02H MOV DX, 03H MOV CX, 04HNEXT: INC AX ADD BX, AX SHR DX, 1 (LOOP NEXT

)

程序運(yùn)行前

DX=00000011B

(1)AX=05HBX=10HCX=00HDX=00H

1/12/20232114.如在下面程序段的括號(hào)中分別填入以下指令:(1)LOOP NEXT

(2)LOOPE NEXT(相等循環(huán),即結(jié)果為0,即ZF=1,則循環(huán))(3)LOOPNE NEXT(不相等循環(huán),即結(jié)果為1,即ZF=0,則循環(huán))試說(shuō)明在這三種情況下,程序段執(zhí)行完后,AX,BX,CX,DX寄存器的內(nèi)容分別是什么?START: MOV AX, 01H MOV BX, 02H MOV DX, 03H MOV CX, 04HNEXT: INC AX ADD BX, AX SHR DX, 1 (LOOPE NEXT

)

程序運(yùn)行前

DX=00000011B

(2)AX=02HBX=04HCX=03HDX=01H

1/12/20232214.如在下面程序段的括號(hào)中分別填入以下指令:(1)LOOP NEXT

(2)LOOPE NEXT(相等循環(huán),即結(jié)果為0,即ZF=1,則循環(huán))(3)LOOPNE NEXT(不相等循環(huán),即結(jié)果為1,即ZF=0,則循環(huán))試說(shuō)明在這三種情況下,程序段執(zhí)行完后,AX,BX,CX,DX寄存器的內(nèi)容分別是什么?START: MOV AX, 01H MOV BX, 02H MOV DX, 03H MOV CX, 04HNEXT: INC AX ADD BX, AX SHR DX, 1 (LOOPNENEXT

)

程序運(yùn)行前

DX=00000011B

(3)AX=03HBX=07HCX=02HDX=00H1/12/20232315.某班有7個(gè)同學(xué)的英語(yǔ)成績(jī)低于80分,分別存在ARRAY數(shù)組中,試編程完成以下工作:(1)給每人加5分,結(jié)果存到NEW數(shù)組中。(2)把總分存到SUN單元中。(3)把平均分存到AVERAGE單元中。1/12/202324【答】 ARRAY DB………… NEW DB7DUP(?)

SUM DW0 AVERAGE DB0(1)給每人加5分,結(jié)果存到NEW數(shù)組中。

MOV CX, 07H MOV BX, 0

NEXT: MOV AL, ARRAY[BX] ADD AL, 5

DAA MOV NEW[BX],AL INC BX LOOP NEXT HLT1/12/202325(2)把總分存到SUM單元中。

MOV CX, 06H MOV BX, 01H MOV AH,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論