
微机原理练习六读程序并回答问题.pdf
5页微机原理练习六读程序并回答问题1.已知,(DS)=2000H,(BX)=100H,(SI)=0002H,从物理地址20100H单元开始,依次存放数据12H、34H、56H、78H;而从物理地址21200H单元开始,依次存放数据2AH、4CH、8BH、98H试说明下列各条指令单独执行后AX寄存器的内容MOV AX,3600H(AX)=MOV AX,1200H(AX)=MOV AX,BX(AX)=MOV AX,BX(AX)=2.以下语句汇编后,变量CON1、CON2、CON3 和 CON4 的内容分别是多少?N1=10 N2=5 N3=3 CON1 DB NOT N1 CON2 DB(N1 AND N2 OR N3)GE 0FH CON3 DW(N2 AND N1 XOR N3)LE 0FH CON4 DB(N1 AND N3 OR N2)LT 0FH 3.读下列程序,并在空白处填入合适指令,使该程序段能完成将100H个字节数据从2000H处搬到 1000H处的操作MOV SI,2000H MOV CX,100H CLD 4 指出下面指令序列的执行结果MOV DX,2000H MOV BX,1000H XCHG BX,DX 则:BX=DX=5 设初值 AX=6264H,CX=0001H,在执行下列程序段后,AX=?CX=?AND AX,AX JZ DONE SHL CX,1 ROR AX,CL DONE:OR AX,1234H则:AX=CX=名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -6 有数据定义如下,与之等同功能的指令是什么?DAT DW 100 DUP(?):MOV CX,LENGTH DAT ADD AX,TYPE DAT 7.指出下面指令序列的执行结果。
MOV AX,1234H PUSH AX POP BX 则:BX=AX=8.对于给定的数据定义,变量R1和 R2的值分别是多少?A1 DB 1,2,3,ABC A2 DB 0 R1 EQU A2-A1 则 R1=K1 DW?K2 DB 6 DUP(?)R2 EQU$-K1 则 R2=9.选用最少的指令,实现下述要求的功能AH的高 4 位清 0,其余位不变AL的高 4 位取反,其余位不变AL的高 4 位移到低4 位,高 4 位清 0AL的低 4 位移到高4 位,低 4 位清 010.下面一段程序完成对某一缓冲区置全“1”操作设缓冲区长度为20 个字节,缓冲区首址DI=0200H,并设(ES)=3000H,试填空CLD MOV AX,3000H MOV DI,0200H MOV AL,0FFH REP STOSB 11.下列伪指令在存储区中分别为各变量分配多少字节?VR1 DW 10 VR2 DW 6DUP(?),66,88 VR3 DD 10DUP(?)VR4 DB HOW ARE YOU12.写出下列程序段执行后的结果,并说出完成的是什么功能?MOV CL,4 MOV AL,87H MOV DL,AL AND AL,0FH OR AL,30H SHR DL,CL OR DL,30H 则(AL)=(DL)=实现的功能为13.分析程序段,并填入适当的内容。
MOV AL,0FH 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -MOV BL,0FEH XOR AL,BL 则有:(AL)=(BL)=14.读下列指令,回答问题:X EQU 10 Y DB 20:MOV AL,X MOV AH,Y 完成什么操作?X和 Y的含义有什么不同?15.读程序并写出程序所完成的功能VARX DB A1 VARY DB A2 RES DB?:MOV DX,VARX ADD DX,VARY MOV CL,3 SAL DX,CL SUB DX,VARX SAR DX,1 MOV RES,DX RET 程序功能为:(请用数学公式表示)16.读下列指令,回答问题:SUB AX,AX AND DX,AX MOV AX,1234 则:(DX)=(AX)=17.分析程序段,并填入适当的内容MOV AL,0AH MOV AH,0 ADD AX,AX MOV BX,AX ADD AX,AX ADD AX,AX ADD AX,AX ADD AX,BX 则有:(AX)=该程序完成的功能:18.读程序并写出程序所完成的功能VAR DB 18,32,0,5,51,19:MOV BX,OFFSET VAR MOV AL,BX MOV CX,5 NEXT:INC BX ADD AL,BX LOOP NEXT 程序功能为:程序运行后,(AL)=名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -19.已知(BL)=0F8H,(AL)=46H,写出下列每条指令单独执行后的结果。
AND AL,BL(AL)=OR BL,AL(BL)=XOR BL,AL(BL)=NOT AL(AL)=20.已知 DA1变量单元中存放数据134,问执行下面程序段后的结果DA1 DB 134 :MOV AL,DA1 MOV AH,0 MOV CX,3 MOV BX,AX LOP:PUSH BX DEC BX LOOP LOP 问:程序执行后,堆栈中压了个数,压入的最后一个数值是21.读下列程序,并在空白处填入合适指令,使该程序段能完成对某一缓冲区清零的操作假设缓冲区长度为100 个字节,缓冲区首址DI=0200H,(ES)=3000HCLD MOV AX,3000H MOV DI,0200H MOV AL,00H REP STOSB 22.已知(AL)=0C4H,DATA单元中的内容为5AH,写出下列每条指令单独执行后的结果AND DATA,AL(DATA)=OR AL,01H(AL)=XOR DATA,AL(DATA)=NOT AL(AL)=23.分析下列程序,回答指定问题MOV AX,5C8FH MOV BX,238FH XOR AX,BX ADD AX,BX 问:(AX)=,(BX)=24.下面程序完成将存储单元A1 中 2 个压缩型BCD码拆成两个非压缩型BCD码,高位 BCD码转换为ASCII 码后存入A3单元,低位BCD码转换为 ASCII 码后存入A2单元,请在每个空白处填上一条指令。
STRT:MOV AL,A1 MOV CL,4 OR AL,30H MOV A3,AL MOV AL,A1 OR AL,30H MOV A2,AL 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -参考答案1.3600H;4C2AH;0100H;3412H;2.(CON1)=0F5H或者(CON1)=F5H;(CON2)=00H;(CON3)=0000H;(CON4)=0FFH或者(CON4)=FFH;3MOV DI,1000H;REP MOVSB;4.(BX)=2000H;(DX)=1000H;5.(AX)=1ABDH;(CX)=0002H;6MOV CX,0064H;ADD AX,2;7.(BX)=1234H;(AX)=1234H;8.R1=6;R2=8;9 AND AH,0FH;XOR AL,0F0H;MOV CL,4;SHR AL,CL;MOV CL,4;SHL AL,CL;10.MOV ES,AX;MOV CX,20;11.VR1:2 个;VR2:16 个;VR3:40 个;VR4:11个;12(AL)=37H;(DL)=38H;实现的功能:将AL中的两个组合 BCD 数分别转换为 ASCII 码;13.(AL)=0F1H或者 F1H;(BL)=0FEH或者 FEH;14.完成的操作是:将X的值传送至 AL,将 Y的值传送至 AH;X 是符号名;(1 分)Y 是变量;15(A1+A2)X 8-A1/2;16.(DX)=0;(AX)=1234;17.(AX)=00B4H;完成的功能:将AX寄存器中的内容扩大18倍;18程序的功能:18+32+0+5+51+19;7DH;19.(AL)=40H;(BL)=0FEH或者 FEH;(BL)=0BEH或者 BEH;(AL)=0B9H或者 B9H;20.3;0084H;21MOV ES,AX;MOV CX,100;22.(DATA)=40H;(AL)=0C5H或 C5H;(DATA)=9EH;(AL)=3BH;23.(AX)=0A28FH或 A28FH;(BX)=238FH;24SHR AL,CL;AND AL,0FH;名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -。
