《微机原理习题(23页).doc》由会员分享,可在线阅读,更多相关《微机原理习题(23页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-1、设有关寄存器及存储器单元的内容如下: DS3000H, BX0200H, SI0002H, 30200H24H, 30202H0ACH,30203H=0F0H, 31300H54H, 31301H98H, 31302H6DH。问下列各条指令执行完后,AL或 AX寄存器的内容各是什么?分析:(1)Mov AX,1300H指令的源操作数为立即寻址方式且为字操作,所以该指令执行完后,Ax=1300H。(2)MOV AL,BL指令的源操作数为寄存器寻址方式址为字节操作,所以该指令执行完后,AL00H(3)Mov Ax,1300H指令的源操作数为直接寻址方式且为字操作,执行该指令时,是将DS10H
2、+1300H31300的字内容送Ax,所以该指令执行完后,Ax=9854H。(4)Mov AL,Bx指令的源操作数为寄存器间接寻址方式且为字节操作,执行该指令时,是将DS10H+Bx30200H的内容送AL,所以该指令执行完后,AL24H。(5)Mov AL,1100HBx指令的源操作数为寄存器加位移量寻址方式且为字节操作,执行该指令时,是将DS*10H+BX+1100H31300H的内容送AL,所以该指令执行完后,AL=54H。(6)MovAX,BXSI指令的源操作数为基址变址寻址方式且为字操作,执行该指令时是将DS10H+BX+SI30202H的内容送AX,所以该指令执行完后,AXF0AC
3、H。(7)Mov AL,1100HBxSI指令的源操作数为基址变址加位移量寻址方式且为字节操作,执行该指令时,是将DS10H+BX+SI+1100H31302H的内容送AL,所以该指令执行完后,AL=6DH。2.3.4.P90-94、直接寻址 源和目的操作数由段选择子和偏移量引用:l 存储器操作数的有效地址EA在指令中直接给出。 例 MOV AL, 2000H l 默认段寄存器为DS。 操作数所在内存单元的物理地址为: PA = ( DS )10H + EA 5.6.DATADATA分析:ASCII码由7位二进制表示,每ASCII码表示的数码占内存的一个存储单元,BCD码由4位二进制数表示,两
4、个BCD码数据占内存的一个存储单元,其中高地址数据存放在高4位。ASCII码减去30H就得到对应数码的BCD码。7.8.9.10.111213.14.1516171819 20.21.22.23.24、如果8259A初始化过程需要ICW4,系统使用多个8259A且输入是电平触发的,那么ICW1应写入什么值?假定所有无用位均为0,将结果用二进制和十六进制数表示。 解:ICW1=00011001B19H 分析:ICW1的格式如图25、如果8259A输出到总线上的类型码范围从FOHF7H,那么寄存器ICW2应写入什么? 解:ICW2=11110000=F0H 分忻:ICW2的格式如图所示。 D7-D
5、3l1110B 低3位为无关状态,取0。 因此完整的命令字是: D7-D0=11110000BFOH26、假定主8259A配置成IR3IR0输入直接从外部电路接受输入,但是IR7一IR4则由从片的INT输出提供,则主片的初始化命令字ICW3的码值为多少? 解:ICW311110000B=F0H27、如果将中断输入IR3-IR0屏蔽,IR7-IR4撤消屏蔽,则OCW1码为多少解:OCW1=00001111B=OFH28、如果优先级策略选择按非特殊EOI命令循环移位则OCW2应为多少?解:OCW210100000BAOH第二章 习题课1、2、3、4、第三章 指令系统 习题课1、若要使寄存器AL中的
6、高4位不变,低4位为0,所用指令为( B )。 A. AND AL, 0FH B. AND AL, 0FOH C. OR AL, 0FH D. OR AL 0FOH2、下列MOV指令中,不正确的指令是( D )。 A. MOV AX, BX B. MOV AX, BX C. MOV AX, CX D. MOV AX, CX3、已知BX=7830H,CF=1,执行指令:ADC BX,87CFH之后,BX= ,标志位的状态分别为CF= ,ZF= ,SF= 。答案:0000H,1,1,04、程序如下:MOV AX,0MOV BX,1MOV CX,100A:ADD AX,BX INC BX LOOP
7、A HLT执行后的结果为(BX)= C 。A)99 B)100 C)101 D)1025、源程序如下: MOV CL,4 MOV AX,2000H SHL AL,CL SHR AX,CL MOV 2000H,AX试问:(1)若程序执行前,数据段内(2000H)=09H,(2001H)=03H, 则执行后有(2000H)= ,(2001H)= 。 (2) 本程序段的功能是什么?答案:39H、00H;将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0(2001H) 6、源程序如下: MOV AL,0B7H AND AL,0DDH X
8、OR AL,81H OR AL,33H JP LAB1 JMP LAB2试问:(1)执行程序后AL= ;(2)程序将转到哪一个地址执行: 。 答案:37H、LAB27、设有100个字节数据(补码),存放在数据段中EA2000H的存储区内,以下程序应能从该数据区中找出最大的一个数并存人同一数据段EA2100H的单元中,请完成该程序(在空白处填入适当的语句)。MAX:MOVBX, ; MOV AL,BX MOVCX, ;LOOP1:INC BX CMPAL,BX LOOP2 MOVAL,BXLOOP2:DEC CX JNZ ; MOV ,AL 答案:2000H、99、JG、LOOP1、2100H
9、8、“先工作后判断”的循环结构中,循环体执行的次数最少是 A 次。 A.1 B. 2 C. 0 D.不定9、有下列程序段:AGAIN: MOV AL,SI MOV DI,AL INC SI INC DI LOOP AGAIN下列指令中 A 可完成与上述程序段相同的功能。A.REP MOVSB B. REP LODSB C. REP STOSB D. REPE SCASB10、已知: (AX)=6666H, (BX)=0FF00H, (CF)=0。在执行下面程序段后: (AX)= , (BX)= , (CF)= . MOV AX,5555H AND AX,BX XOR AX,AX NOT BX答
10、案:(AX)=0000H、(BX)= 00FFH、(CF)= 011、已知:(AX)=2233H, (BX)=5566H, 执行了下面的程序段后, (AX)= ; (BX)= ;CF= . CMP AX,BX JG NEXT ;若大于 XCHG AX,BXNEXT: NEG AX 答案:(AX)=AA9AH、 (BX)=2233H、CF=112、源程序如下: CMP AX, BX JNC L1 JZ L2 JNS L3 JNO L4 JMP L5 设AX=74C3H,BX=95C3H,则程序最后将转到哪个标号处执行?试说明理由。 74C3H- 95C3H=DF00H 且有:CF=1, ZF=0
11、, SF=1, OF=1 程序将转到L5标号处执行。13、设STRING1=20H,STRING2=25H,(20H)=80H,(21H)=90H,(22H)=A0H,(25H)=A0H,(26H)=6FH,(27H)=76H,下列程序执行后,20H,21H,22H,23H,CF,AL,SI,DI中的内容分别多少?CLCMOV CL,03HLEA SI, STRING1LEA DI, STRING2LOOP:MOV AL,SIADC AL,DIMOV SI,ALINC SIINC DIDEC CLJNZ LOOPJNC NEXTMOV SI,01HNEXT: HLT答:(20H)=20H、(2
12、1H)=00H、(22H)17H、(23H)01H、CF=1、AL=17H、SI=23H、DI=28H14、写出正确的指令实现以下任务:(1)右移DI三位,并把零移入最左一位(2)AL中所有位左移一位,使0移入最右一位(3)AL循环左移三位(4)EDX带进位位循环右移一位(5)DX寄存器右移一位,并且使结果的符号位与原数符号相同15、用普通运算指令执行BCD码运算时,为什么要进行十进制调整?具体说,在进行BCD码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?16、在CMP AX,DX指令执行后,当标志位SF、OF、ZF满足下列逻辑关系(SFOF)ZF0时,表明 A 。A. (
13、AX) (DX)B. (AX)(DX) C. (AX) (DX)D. (AX)(DX)17、MOV AX,ES:BXSI的源操作数的物理地址是 B 。A. 16d(DS)+(BX)+(SI) B. 16d(ES)+(BX)+(SI)C. 16d(SS)+(BX)+(SI) D. 16d(CS)+(BX)+(SI)18、INC指令不影响 B 标志。A.OF B. CF C. SF D. ZF19、有下列指令: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV BX,4 MUL BX HLT执行这些指令后,寄存器AL的值是 B 。A. 60H B. 00H C.
14、 04H D. A0H20、执行以下程序段: MOV AX,1234HMOV BX,5678HADD AL,BLDAAMOV CL,ALMOV AL,AHADC AL,BHDAA执行后,(CL)=( A )。A12 B34 C56 D7821、条件转移指令JNE的条件是( C )。 A.CF=0 B.CF=1 C.ZF=0 D. ZF=122、已知(AL)0101110lB,执行指令NEG AL后再执行CBW,(AX) FF3AH。 23、分别说明以下各个变量占有多少个内存单元,以及各内存单元的内容(用十六进制表示)(1)、DWORD DD 12,-3,0ABCDH,3*7+15(2)、TAB
15、LE DB 5 DUP(4 DUP(9),3DUP(8),6,0)24、假设有以下数据定义伪操作:BUFF1 DB WXYZBUFF2 DB 10 DUP(?)BUFF3 DW 50 DUP(?)BUFF4 DD 100 DUP(?)如果随后执行以下指令,试说明有关寄存器的内容。(1)、MOV AL,TYPE BUFF2(2)、 MOV AH,TYPE BUFF3(3)、MOV BL,LENGTH BUFF2(4)、MOV BH,LENGTH BUFF3(5)、MOV CL,SIZE BUFF2(6)、MOV CH,SIZE BUFF3(7)、MOV DL,TYPE BUFF4(8)、MOV
16、DH,SIZE BUFF425、分别说明以下各个变量占有多少个内存单元,以及各内存单元的内容(用十六进制表示)(1)DATA DB 36,36,-36,FFH,0FFH(2)BUFF DW 10DUP(2,-2,6DUP(?)26、假设有以下符号定义伪操作DATA1 EQU 19HDATA2 EQU -1DATA3 EQU A如果随后执行以下指令,试说明有关寄存器的内容(用十六进制表示)(1)、MOV AL,DATA1*DATA2+DATA3(2)、MOV BL,DATA1/DATA2-DATA3(3)、MOV CL,DATA3 MOD DATA1(4)、MOV DL,DATA1 AND DA
17、TA3(5)、MOV AH,DATA1 OR DATA2 XOR DATA3(6)、MOV AX,DATA1 LE DATA2(7)、MOV BX, DATA3 GT DATA127、一个存储器除了由基本存储电路构成了存储体外,还有许多外围电路,通常的外围电路有哪些?并简述其功能。28、写出正确的指令实现以下任务:(1)右移DI三位,并把零移入最左一位(2)AL中所有位左移一位,使0移入最右一位(3)AL循环左移三位(4)EDX带进位位循环右移一位(5)DX寄存器右移一位,并且使结果的符号位与原数符号相同(1)、MOV CL,3 SHR DI,CL(2)、SHL AL,1(3)、MOV CL,
18、3 ROL AL,CL(4)、RCR EDX,1(5)、SAR DX,129、用普通运算指令执行BCD码运算时,为什么要进行十进制调整?具体说,在进行BCD码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?BCD码运算是十进制数的运算,而普通运算指令是二进制运算指令,得到的是二进制的结果,只有进行了十进制调整,才能得到正确的十进制结果。 在BCD码的加、减、乘运算时,应该在相应的二进制运算指令后加十进制调整指令,而BCD除法运算时,应在相应的二进制运算指令之前加十进制调整指令。具体讲就是加法后进行十进制调整DAA、减法后进行十进制调整DAS、加法后进行ASCII调整AAA、减法
19、后进行ASCII调整AAS、乘法后进行ASCII调整AAM、除法前进行调整AAD。30.31.32.33.34.35.36.37.38.39.40.41.42.内存单元初始化内容为:(2000H:2A00H)-(2000H:2A02H)分别为0FH、0EH、0DH,(2000H:2A10H)-(2000H:2A12H)分别为09H、08、07H。执行下列程序后,请填写存储单元的内容:MOV AX,2000HMOV DS,AXMOV ES,AXMOV SI,2A10HMOV DI,2A00HCLD MOV CX,3(1)2000H:2A00H= 。 (2)2000H:2A01H= 。(3)2000H:2A02H= 。 (4)2000H:2A10H= 。(5)2000H:2A11H= 。 (6)2000H:2A12H= 。43.-第 23 页-