当前位置:文档之家› 微机原理习题

微机原理习题

1、设有关寄存器及存储器单元的内容如下:DS=3000H, BX=0200H, SI=0002H, 30200H=24H, 30202H=0ACH,30203H=0F0H, 31300H =54H, 31301H=98H, 31302H=6DH。

问下列各条指令执行完后,AL或 AX寄存器的内容各是什么?分析:(1)Mov AX,1300H指令的源操作数为立即寻址方式且为字操作,所以该指令执行完后,Ax=1300H。

(2)MOV AL,BL指令的源操作数为寄存器寻址方式址为字节操作,所以该指令执行完后,AL=00H(3)Mov Ax,[1300H]指令的源操作数为直接寻址方式且为字操作,执行该指令时,是将DS×10H+1300H =31300的字内容送Ax,所以该指令执行完后,Ax=9854H。

(4)Mov AL,[Bx]指令的源操作数为寄存器间接寻址方式且为字节操作,执行该指令时,是将DS×10H+Bx=30200H的内容送AL,所以该指令执行完后,AL=24H。

(5)Mov AL,1100H[Bx]指令的源操作数为寄存器加位移量寻址方式且为字节操作,执行该指令时,是将DS*10H+BX+1100H=31300H的内容送AL,所以该指令执行完后,AL=54H。

(6)MovAX,[BX][SI]指令的源操作数为基址变址寻址方式且为字操作,执行该指令时是将DS×10H+BX+SI=30202H的内容送AX,所以该指令执行完后,AX=F0ACH。

(7)Mov AL,1100H[Bx][SI]指令的源操作数为基址变址加位移量寻址方式且为字节操作,执行该指令时,是将DS×10H+BX+SI+1100H=31302H的内容送AL,所以该指令执行完后,AL=6DH。

2.3.4..P90-94、直接寻址源和目的操作数由段选择子和偏移量引用:存储器操作数的有效地址EA在指令中直接给出。

例 MOV AL, [ 2000H ]默认段寄存器为DS。

操作数所在内存单元的物理地址为:PA = ( DS )×10H + EA5.6.D A T AD A T A分析:ASCII码由7位二进制表示,每ASCII码表示的数码占内存的一个存储单元,BCD码由4位二进制数表示,两个BCD码数据占内存的一个存储单元,其中高地址数据存放在高4位。

ASCII码减去30H就得到对应数码的BCD码。

7.8.9.10.11.12 13.14.15 16.17 18.21.19 .20.22.23.24、如果8259A初始化过程需要ICW4,系统使用多个8259A且输入是电平触发的,那么ICW1应写入什么值?假定所有无用位均为0,将结果用二进制和十六进制数表示。

解:ICW1=00011001B=19H分析:ICW1的格式如图25、如果8259A输出到总线上的类型码范围从FOH—F7H,那么寄存器ICW2应写入什么?解:ICW2=11110000=F0H分忻:ICW2的格式如图所示。

D7-D3=l1110B低3位为无关状态,取0。

因此完整的命令字是:D7-D0=11110000B=FOH26、假定主8259A配置成IR3-IR0输入直接从外部电路接受输入,但是IR7一IR4则由从片的INT 输出提供,则主片的初始化命令字ICW3的码值为多少?解:ICW3=11110000B=F0H27、如果将中断输入IR3-IR0屏蔽,IR7-IR4撤消屏蔽,则OCW1码为多少解:OCW1=00001111B=OFH28、如果优先级策略选择按非特殊EOI命令循环移位.则OCW2应为多少?解:OCW2=10100000B=AOH第二章习题课1、2、3、第三章指令系统 习题课1、若要使寄存器AL 中的高4位不变,低4位为0,所用指令为( B )。

A. AND AL, 0FH B. AND AL, 0FOH C. OR AL, 0FH D. OR AL 0FOH4、2、下列MOV指令中,不正确的指令是( D )。

A. MOV AX, BXB. MOV AX, [BX]C. MOV AX, CXD. MOV AX, [CX]3、已知BX=7830H,CF=1,执行指令:ADC BX,87CFH之后,BX= ,标志位的状态分别为CF= ,ZF= ,SF= 。

答案:0000H,1,1,04、程序如下:MOV AX,0MOV BX,1MOV CX,100A:ADD AX,BXINC BXLOOP AHLT执行后的结果为(BX)= C 。

A)99 B)100 C)101 D)1025、源程序如下:MOV CL,4MOV AX,[2000H]SHL AL,CLSHR AX,CLMOV [2000H],AX试问:(1)若程序执行前,数据段内(2000H)=09H,(2001H)=03H, 则执行后有(2000H)= ,(2001H)= 。

(2) 本程序段的功能是什么?答案:39H、00H;将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型BCD码,并存入(2000H)单元,0(2001H)6、源程序如下:MOV AL,0B7HAND AL,0DDHXOR AL,81HOR AL,33HJP LAB1JMP LAB2试问:(1)执行程序后AL= ;(2)程序将转到哪一个地址执行:。

答案:37H、LAB27、设有100个字节数据(补码),存放在数据段中EA=2000H的存储区内,以下程序应能从该数据区中找出最大的一个数并存人同一数据段EA=2100H的单元中,请完成该程序(在空白处填入适当的语句)。

MAX:MOV BX,;MOV AL,[BX]MOV CX,;LOOP1:INC BXCMP AL,[BX]LOOP2MOV AL,[BX]LOOP2:DEC CXJNZ ;MOV ,AL答案:2000H、99、JG、LOOP1、[2100H]8、“先工作后判断”的循环结构中,循环体执行的次数最少是 A 次。

装A.1B. 2C. 0D.不定9、有下列程序段:AGAIN: MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP AGAIN下列指令中 A 可完成与上述程序段相同的功能。

A.REP MOVSBB. REP LODSBC. REP STOSBD. REPE SCASB10、已知: (AX)=6666H, (BX)=0FF00H, (CF)=0。

在执行下面程序段后:(AX)= , (BX)= , (CF)= .MOV AX,5555HAND AX,BXXOR AX,AXNOT BX答案:(AX)=0000H、(BX)= 00FFH、(CF)= 011、已知:(AX)=2233H, (BX)=5566H, 执行了下面的程序段后, (AX)= ; (BX)= ;CF= .CMP AX,BXJG NEXT ;若大于XCHG AX,BXNEXT: NEG AX答案:(AX)=AA9AH、 (BX)=2233H、CF=112、源程序如下:CMP AX, BXJNC L1JZ L2JNS L3JNO L4JMP L5设AX=74C3H,BX=95C3H,则程序最后将转到哪个标号处执行?试说明理由。

∵ 74C3H 95C3H=DF00H且有:CF=1, ZF=0, 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,[SI]ADC AL,[DI]MOV [SI],ALINC SIINC DIDEC CLJNZ LOOPJNC NEXTMOV [SI],01HNEXT: HLT答:(20H)=20H、(21H)=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满足下列逻辑关系(SF⊕OF)+ZF=0时,表明 A 。

A. (AX) > (DX)B. (AX)≥(DX)C. (AX) < (DX)D. (AX)≤(DX)17、MOV AX,ES:[BX][SI]的源操作数的物理地址是 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.OFB. CFC. SFD. ZF19、有下列指令:MOV AX,1234HMOV CL,4ROL AX,CLDEC AXMOV BX,4MUL BXHLT执行这些指令后,寄存器AL的值是 B 。

A. 60HB. 00HC. 04HD. A0H20、执行以下程序段:MOV AX,1234HMOV BX,5678HADD AL,BLDAAMOV CL,ALMOV AL,AHADC AL,BHDAA执行后,(CL)=( A )。

A.12 B.34 C.56 D.7821、条件转移指令JNE的条件是( C )。

A.CF=0B.CF=1C.ZF=0D. ZF=122、已知(AL)=0101110lB,执行指令NEG AL后再执行CBW,(AX)= FF3AH。

23、分别说明以下各个变量占有多少个内存单元,以及各内存单元的内容(用十六进制表示)(1)、DWORD DD 12,-3,0ABCDH,3*7+15(2)、TABLE DB 5 DUP(4 DUP(9),3DUP(8),6,0)24、假设有以下数据定义伪操作:BUFF1 DB ‘WXYZ’BUFF2 DB 10 DUP(?)BUFF3 DW 50 DUP(?)BUFF4 DD 100 DUP(?)如果随后执行以下指令,试说明有关寄存器的内容。

相关主题