微机原理第3章习题
微机原理第三章
一、选择题1.IP指令指针寄存器是属于( )a. 通用寄存器b. 段寄存器c. 变址寄存器d. 控制寄存器2.下面有语法错误的指令是( )a. ADD AL,AHb. ADD [BX+3],ALc. ADD AH,[DI]d. ADD [BP+2],DA1 (DA1是变量名)3.完成对DX的有符号数除以2的指令是( )a. IDIV 2b. SAR DX,1c. ROR DX,1d. RCR DX,14.使进位位置1的指令是( )a. CLCb. CMCc. STCd. NOP5.下面的XCHG指令中,语法正确的是( )a. XCHG AL,DSb. XCHG BL,[BX]c. XCHG AL,0FHd. XCHG BUF1,BUF26.一条指令中目的操作数不允许使用的寻址方式是( )a. 寄存器寻址b. 立即数寻址c. 变址寻址d. 寄存器间接寻址7.设SP=1FFEH,执行下列指令后,SP寄存器的值是( )POPFPUSH AXa.. 2000Hb. 2002Hc. 1FFCHd. 1FFEH8.LDS SI,ES:[2000H]指令的全部功能是( )a. 把地址2000H送SIb. 把地址2000H字单元的内容送SIc. 把地址2000H字单元内容送SI,把2002H字单元内容送DSd. 把地址2000H字单元内容送DS,把2002H字单元内容送SI 9.设AL=04H,BL=0F8H,执行MUL BL指令后,结果是( )a. AX=0032Hb. AX=00E0Hc. AX=03E0Hd. AX=0FFE0H10.假设字节单元(06925H)=12H,(06926H)=45H,(06927H)=78H,那么字单元(06925H)=(),字单元(06926H)=()。
a. 1245Hb. 4578Hc. 4512Hd. 7845H11.逻辑运算指令都是按()进行操作的。
a. 位b. 字节c. 字d. BCD码12.互换指令XCHG可以在两个寄存器之间互换数据,也可以在()与()之间互换数据。
微机原理第3章习题与答案
习题一、选择题1.寻址方式指出了操作数的位置,一般来说_______。
A.立即寻址给出了操作数的地址B.寄存器直接寻址的操作数在寄存器内,而指令给出了存储器C.直接寻址直接给出了操作数本身D.寄存器直接寻址的操作数包含在寄存器内,由指令指定寄存器的名称答案:D2.寄存器寻址方式中,操作数在_________。
A.通用寄存器B.堆栈C.内存单元D.段寄存器答案:A3.寄存器间接寻址方式中,操作数在_________。
A.通用寄存器B.堆栈C.内存单元D.段寄存器答案:C4.下列指令中的非法指令是______。
A.MOV[SI+BX],AXB.MOVCL,280C.MOV[0260H],2346HD.MOVBX,[BX]答案:B5.设(SP)=0100H,(SS)=2000H,执行PUSHBP指令后,栈顶的物理地址是_____。
A.200FEHB.0102HC.20102HD.00FEH答案:A6.指令LEABX,TAB执行后,其结果是______。
A.将TAB中内容送BXB.将TAB的段基址送BXC.将TAB的偏移地址送BXD.将TAB所指单元的存储内容送BX答案:C7.下列正确的指令格式有______。
A.MOV[BX],1B.MOVAL,0345HC.MOVES:PTR[CX],3D.XLAT答案:D8.设(AX)=C544H,在执行指令ADDAH,AL之后,______。
A.CF=0,OF=0B.CF=0,OF=1C.CF=1,OF=0D,CF=1,OF=1答案:C9.若AL、BL中是压缩BCD数,且在执行ADDAL,BL之后,(AL)=0CH,CF=1,AF=0。
再执行DAA后,(AL)=_____。
A.02HB.12HC.62HD.72H答案:B10.执行下列程序后AL的内容为_____。
MOVAL,25HSUBAL,71HDASA.B4HB.43HC.54HD.67H11.下列四条指令中,需要使用DX寄存器的指令是______。
微机原理作业及答案第3章
一、选择题1、CPU执行算术运算指令不会影响的标志为是_D__。
A.溢出标志 B.符号标志C.零标志 D.方向标志2、TEST指令和__A__指令执行同样的操作,但不送回操作结果,仅影响标志位。
A.AND B.ORC.NOT D.XOR3、下列指令中,影响标志位的指令是__D____。
A.从寄存器取数指令 B.条件转移指令C.压栈指令 D.循环移位指令4、执行指令INC AX后,不受影响的标志为__B___。
A.ZF B.CF C.SF D.OF5、当无符号数运算产生溢出时,__D__标志位为1.A.SF B.ZF C.CF D.OF6、若用户堆栈位于存储区10000H-1FFFFH,则该堆栈的段地址是___D____。
A.10000H B.1FFFFH C.1000H D.0FFFFH7、使用直接寻址方式时,操作数总是在 C 中。
A.通用寄存器B. 堆栈C. 主存单元D. 段寄存器8、指令MOV AX,[BP+SI]指令源操作数的段地址是 C 。
A. CSB. DSC. SSD. ES9、假定(AX)=96H,(BX)=65H,依此执行ADD AX,BX指令和DAA指令后,(AL)=___C_。
A.0FBH B.01H C.61H D.0BH10、设AX=C544H,在执行指令ADD AH,AL后, C 。
A. CF=0,OF=0B. CF=0,OF=1C.CF=1,OF=0D. CF=1,OF=111、由379AH得到FFFFH,可采用的逻辑运算是 D 。
A.与 B.或C.求反 D.或、异或二、填空题1.若物理地址为2D0H,偏移量为0B0H,则段地址为___22H_____。
2.8086指令系统中有_逻辑_移位和_算术_移位两类,其中__SHL__和SAL两条指令属于不同的移位指令,但其功能完全相同。
3.串操作指令规定目的操作数使用___DI___寄存器,目的串必须在__附加_段中。
4.在8086中进行寄存器间接寻址时,可采用的寄存器有____BX____、_BP_____、__SI______和__DI______。
微机原理第三章习题答案
习题3答案1. 指出下列指令的错误原因。
(1) AND AX, DL ;类型不匹配(2) ADD CS, DX ;CS不能作为目的操作数(3) MOV AX, IP ;IP不能作为指令的操作数(4) MOV [BP][SI], [SI] ;两个操作数不能同时为内存操作数(5) SUB [BP][SI], ES:DX ;段超越前缀只能用在内存操作数之前(6) XCHG AL, [SI][DI] ;没有[SI][DI]这种操作数形式(7) JGE AX ;条件转移指令的操作数只能是标号(8) PUSH DL ;对堆栈不能进行字节操作2. 用一条指令将BX清0。
(请给出3种方法)方法1:MOV BX, 0方法2:SUB BX, BX方法3:AND BX, 0 ;将BX和0做与,可以将BX清零方法4:XOR BX, BX3. 写出实现下列功能的指令序列。
(1) 判断AX的值,若AX等于0,则转到标号LABEL处。
(请写出3种方法)方法1:CMP AX, 0JZ LABEL ; 如果ZF = 0,说明AX为0,因为CMP指令是做减法,但是不写回结果; 因此指令执行后AX内容不会受到破坏方法2:TEST AX, 0FFHJZ LABEL ; 如果ZF = 0,说明AX为0,TEST指令做与运算,可是不写回结果,只影响标志位。
; 和0与清零,和1与不变,所以和FFH做与的结果是AX本身,但是此时标志位已; 经改变了,所以可以利用标志位来判断,但是AX内容却没有受到任何破坏方法3:AND AX, 0FFH ;这个方法的原理和方法2其实是完全一致的JZ LABEL(2) 将AL的高4位与低4位分别放入AH与AL的低4位,并将AH与AL的高4位清0。
MOV AH, ALAND AL, 0FH ; AL高4位通过与清零,而低4位保持不变MOV CL, 4SHR AH, CL ; 这两条指令通过逻辑右移将AH的高4位清零,因为SHR在右移后,高位补零(3) 若AX和BX中的数恰好1个是奇数、1个是偶数,则将奇数放入AX,偶数放入BX;否则,AX和BX不变。
南邮 微机原理(微型计算机与接口技术)第3章习题解答
解:先将物理地址写成逻辑地址 源逻辑地址为 1000H:2345H 目的逻辑地址为 2000H:3456H MOV AX,1000H ;设置DS段寄存器 MOV DS, AX MOV AX, 2000H ;设置ES段寄存器 MOV ES, AX MOV SI, 2345H ;设置源偏移地址 MOV DI, 3456H ;设置目的偏移地址 MOV CX, 1024 ;设置长度值 CLD ;设置地址为增量方向 REP MOVSB ;重复传送指令
第3章习题解答
3.5 (1)方法1 MOV AX,WORD PTR FIRST MOV BX,WORD PTR SECOND MOV WORD PTR FIRST,BX MOV WORD PTR SECOND,AX 注意: PTR用于临时修改属性,常用方法是 在存储器操作数之前使用。 例如: WOR PTR FIRST WORD PTR [BX] BYTE PTR [SI+BX]
;移位次数=8 ;含进位的循环左移一位 ;含进位的循环右移一位 ;移位次数有无达到8次 ;有无达到8次,没有转L1 ;将结果传送到AL
3.10 第1小题的框图
置源数据区指针 置正数缓冲区指针 置负数缓冲区指针 置数据长度
从源缓冲区 取一个数
Y
=0吗?
N
N
是正数吗?
Y
传送到负数缓冲区 传送到正数缓冲区 负数缓冲区指针加1 正数缓冲区指针加1 源数据区指针加1 数据长度减1
S1: CMP BYTE PTR [BX],0 ;与0比较 JZ COM ;=0 准备取下一个数判断 JL M1 ;为负数转到M1处理 MOV AL,[BX] ;取数 MOV [SI],AL ;将正数存入PLUS缓冲区 INC SI ;修改正数缓冲区地址指针 JMP COM ;转到长度计数部分 M1: MOV AL,[BX] ;取数 MOV [DI], AL ;将负数存入MINUS缓冲区 INC DI ;修改负数缓冲区地址指针 COM: INC BX ;修改源数据地址指针 LOOP S1 ;数据长度减1,并判断 HLT ;结束
微机原理与接口技术习题答案
第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。
(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
微机原理与汇编语言第三章习题解答
3.1 8086/8088 CPU的地址总线有多少位?其寻址范围是多少?答:20条,寻址范围:0~220-1 (1MB)3.2 8086/8088 CPU分为哪两个部分?各部分主要由什么组成?答: BIU(Bus Interface Unit总线接口单元)、EU(Execution Unit执行单元)3.4 8086/8088 CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器也可作为地址寄存器使用?答:八个通用寄存器:AX、BX、CX、DX、SP、BP、SI、DI;三个指针寄存器:IP、SP、BP。
指令指针IP总是指向下一条将要执行的指令在代码段中的偏移地址。
当堆栈中有压入的数据时,堆栈指针SP总是指向栈顶;两个间址指针寄存器:源变址SI和目的变址寄存器DI;在寄存器间接寻址方式中,只有BX、BP、SI、DI能充当地址寄存器。
3.8 在8086/8088 CPU工作在最小模式时,(1)当CPU访问存储器时,要利用哪些信号?(2)当CPU访问外设接口时,要利用哪些信号?(3)当HOLD有效并得到响应时,CPU的哪些信号置高阻?答:当MN/MX为高电平时工作于最小模式、否则为最大模式。
(1)地址线信号、数据线信号、RD、WR、M/IO、DEN、ALE、BHE、DT/R。
(2)地址线信号、数据线信号、RD、WR、M/IO、READY、DEN、ALE、DEN。
(3)DEN、DT/R3.9 当在8086/8088 CPU工作在最大模式时,(1)S—2、S—1、S—0可以表示CPU的哪些状态?(2)CPU的RQ——/GT——信号的作用?答:(1)(2)多处理器的总线控制信号。
共享总线的其他主控者通过该信号申请总线控制权和获得总线授予权。
3.10 试求出下面运算后各个标志位的值,并说明进位标志和溢出标志的区别? 1278H+3469H答:0 0 0 1 0 0 1 0 0 1 1 1 1 0 0 0+ 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1= 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1SF=0、CF=0、ZF=0、PF=1、AF=1、OF=03.12什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址:在存储器寻址中,程序员在程序中指定的地址称之为逻辑地址。
微机原理与接口技术习题答案3
第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’,’word’,’WOR’D;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。
解:var1DW4512H,4512,-1,100/3,10H,65530var2DB’BYTE’,’word’,’WORD’buf1DB100DUP(?)buf2DB7DUP(5DUP(55H),10DUP(240))var3DBLENGTHbuf1pointerDWvar1,buf1(或者pointerDWOFFSETvar1,OFFSETbuf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1DB12,-12,20/6,4DUP(0,55H)var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字变量,L1为标号):(1)MOVSI,100(2)MOVBX,VAR1[SI](3)MOVAX,[BX](4)MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(10)MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1(12)ORBL,TYPEVAR2(13)SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH100H(16)POPCS(17)XCHGAX,ES(18)MOVDS,CS(19)JMPL1+5(20)DIVAX,10(21)SHLBL,2(22)MOVAL,15+23(23)MULCX(24)XCHGCL,[SI](25)ADCCS:[0100],AH(26)SBBVAR1-5,154解:(1)MOVSI,100正确。
(完整版)微机原理第三章(1)及答案
第三章习题集二.选择题(每小题1分,共15分)1. 逻辑地址1000:2000对应的物理地址为( B )。
A、1200HB、12000HC、2100HD、21000H2. 下面哪个寄存器使用时的默认段寄存器为SS( C )。
A、AXB、BXC、SPD、SI3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在( B )段内寻址。
A.程序B.堆栈C.数据D.附加4.在下面四组寄存器中,第 D 组都可用于对存储器间接寻址方式的寄存器。
A. AX,BX,CX,IP;B. BX,SP,DX,SIC. IP,SP,BP,AXD. BP,BX,SI,DI5. 含有立即数的指令中,该立即数被存放在 A 。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中6. 用段基值及偏移量来指明内存单元地址的方式称为( C )。
A、有效地址B、物理地址C、逻辑地址D、相对地址7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=( B )。
A、0FFFFHB、0F47FHC、2032HD、0F000H8. 含有立即数的指令中,该立即数被存放在 B 。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中9.寄存器间接寻址方式中,操作数在 C 中。
A. 通用寄存器B. 堆栈C. 存储单元D. 段寄存器10.下列指令中,有语法错误的指令是(B D)。
A. MOV AX,[1000H]B. LEA AL,1000HC. MOV [1000H],ALD. MOV 1000H,AX11. 下列指令语法有错的是:CA. MOV AX,1000HB. MOV AX,BXC. MOV [AX],[1000H]D. MOV AX,[1000H]12. 8086/8088中除___C___两种寻址方式外,其它各种寻址方式的操作数均在存储器中。
微机原理第3章习题(答案)
微机原理第3章习题(答案)1.下列各条指令是否有错?如果有,请指出错误之处并改正(1)MOVDS 1000H(2)MOV[100],23H(3)ADDAX [BX + BP+ 6](4)PUSHDL(5)INAX, [3FH](6)0UT3FFH AL(7)LESSS [SI](8)POP[AX](9)IMUL4CH(10)SHLBX 5(11)INT300(12)XCHGD, 0FFFH答:(1)错误。
不允许直接向段寄存器送立即数,可改为:MOVAX 1000HMOVD, AX(2)错误。
该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTEPT或WORDPT说明,否则汇编程序会因不能确定操作数长度而指示出错。
可改为:MOVBYTEPTR[1O0] 23H(3)错误。
不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADDAX [BX + DI + 6](4)错误。
堆栈操作应以字为单位进行,而DL是一个字节。
可改为:PUSHDX(5)错误。
在输入/输出指令中,8位端口地址应直接写在操作数处。
可改为:INAX, 3FH(6)错误。
端口地址3FFH已超出8位二进制表示范围,16位端口地址应用DX可改为:MOVD, 3FFHOUTDXAL(7)错误。
LES指令的目操作数应该是通用寄存器,不能是段寄存器。
可改为:LESBX [SI](8)错误。
AX不能用于间接寻址,间接寻址只能用BXBP、SI、DI四个寄存器之一。
可改为:POP[BX](9)错误。
立即数不能做乘法指令的操作数,可改为:MOVBJL 4CHIMULBL(10)错误。
当逻辑移位的次数大于1时,应该用CL指示次数。
可改为MOVCL 5SHLBX CL(11)错误。
操作数300>255,已超出有效的中断类型码范围。
(12)错误。
XCHG指令不允许立即数做它的操作数。
可改为:MOVC, 0FFFHXCHGDXCX2•请指出以下各指令的源、目的操作数所使用的寻址方式(1)MOVSI 2100H(2)SBBDISP[BX], 7(3)AND[DI] , AX(4)ORAX [609EH](5)MOV[BXb DI + 30H], CX(6)PUSHES [BP](7)CALL[DI]DISP(8)JNZShort_label答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:基址寻址(3)源操作数:寄存器寻址;目的操作数:寄存器间接寻址(4)源操作数:直接寻址;目的操作数:寄存器寻址5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的寄存器间接寻址;目的操作数:隐含寻址(7)只有一个操作数,为变址寻址(8)只有一个操作数,为相对寻址3. 已知DS=2000H 有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT 勺偏移地址为1200H。
第三章微机原理习题课
.第三章习题课一、选择题1、在汇编语言程序的开发过程中使用宏功能的顺序是()。
A、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是()。
A、名字项B、操作项C、操作数项D、注释项3、下列叙述正确的是()A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令4、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有().A、CMPB、SUBC、ANDD、MOV5、测试BL寄存器容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是()。
A TEST BL,4FHJZ NEXTB XOR BL,4FHJZ NEXTC AND BL,4FHJZ NEXTD OR BL,4FHJZ NEXT6、检查BUF的容是否为正偶数,如是正偶数,则令AL=0。
下面程序段正确的是( )。
A、MOV AL,BUF JS K1SHR AL,1JNC K1MOV AL,0K1:……B、MOV AL,BUF AND AL,11 JNZ K2MOV AL,0K2:……C 、MOV AL ,BUF TEST AL ,81H JNZ K3 MOV AL ,0 K3:……7、下列描述中,执行循环的次数最多的情况是()。
A .MOV CX ,0B .MOV CX ,1 LOP :LOOP LOP LOP :LOOP LOPC .MOV CX ,0FFFFHD .MOV CX ,256 LOP :LOOP LOP LOP :LOOP LOP8、在下列指令中,指令的执行会影响条件码中的CF 位。
微机原理与接口技术第三章-练习题
微机原理与接口技术第三章-练习题第三章练习题一、问答题1、DB1 DB 5 DUP[ 3 DUP(2),2 DUP(3)]…MOV AL,DB1+4MOV BX,WORD PTR DB1[3]上面2条指令执行后,(AL)=?(BX)=?2、下面程序段执行后,寄存器DS,SI的内容分别是多少?ADR DW 1234H,5678H,0ABCDH…LDS SI,ADR+1MOV BX,WORD PTR DB1[3]3、下面程序段执行后,寄存器AX,BL的内容是什么?ARY_W DW 10H DUP(1234H)ARY_B EQU BYTE PTR ARY_W…MOV AX,ARY_W+2MOV BL,ARY_B+24、有下列数据段:DATA SEGMENTORG 30HCON EQU 10HS1 DB ‘IBM PC’DB 0AH,0DHCONT EQU $-S1S2 DW ‘IB’,‘M’,‘PC’,0A0DHDATA ENDS上述数据段中S1,S2的偏移量分别是多少?CONT的值和S2+5字节单元的内容是多少?5、设(DX)=80,CF=1MOV AX,0AA50HXOR AH,0FFHOR DH,55HSBB AX,DX上述指令序列执行后,(AX)=?,(DX)=?6、设AX,BX,CX,中均有数据0AAH,下面3条指令执行后,AX,BX,CX中的内容分别是多少? AND AX,-2OR BX,-2XOR CX,-27、VA_VAR DW 45678…MOV AX,DA_VARMOV DX,DXMOV BX,10LOP: XOR DX,DXDIV BXPUSH AXCMP DX,0JNE LOP执行完上述程序段后,向堆栈压了几个数据?按压入的先后顺序指出这些数据。
如果PUSH AX指令换成PUSH DX,那么向堆栈压入了几个数据?按压入的先后顺序指出这些数据。
8、DATA1 EQU BYTE PTR DATA2DATA2 DW 0A987H,3456H…SAR DATA+1,1MOV AX,DATA2+1SAL DATA2+1,1MOV BX,DATA2+1上述指令序列执行后,(AX)=?,(BX)=?,CF=?,以DATA2为首址的两个字单元内容分别是多少?9、MOV AL,0FHXOR AL,0FFHMOV CL,7SHR AL,CL上述几条指令执行后,(AL)=?如将SHR指令换成ROR或RCR,那么AL中的内容分别是多少?10、以W1为首址的各字节单元中分别存有数字0~9。
微机原理与接口技术(第二版)习题答案-第三章
习题31.假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令原操作数是什么寻址方式,其物理地址是多少?(1)MOV AX, 0ABH (2) MOV AX, [100H](3) MOV AX, V AL (4) MOV BX, [SI](5) MOV AL, V AL[BX] (6) MOV CL, [BX][SI](7) MOV V AL[SI], BX (8) MOV [BP][SI], 100答:(1) 立即数寻址,无物理地址(2) 直接寻址,物理地址=2000H×10H+100H=20100H(3) 直接寻址,物理地址=2000H×10H+0050H=20050H(4) 寄存器间接寻址,物理地址=2000H×10H+00A0=200A0H(5) 相对寄存器寻址,物理地址=2000H×10H+(0050+0100H)=20150H(6) 基址加变寻址,物理地址=2000H×10H+(0100H+00A0H)=201A0H(7) 寄存器寻址,无物理地址(8) 立即数寻址,无物理地址2.已知(SS)=0FFA0H,(SP)=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。
答:“8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP 自动从00B2H指向00B4H;执行一条POP指令,“0F79H”被弹出栈,SP从00B4H 指向00B2H。
图略。
3.设有关寄存器及存储单元的内容如下:(DS)=2000H, (BX)=0100H, (AX)=1200H, (SI)=0002H, (20100H)=12H, (20101H)=34H, (20102H)=56H, (20103H)=78H, (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H, (21203H)=65H.试说明下列各条指令单独执行后相关寄存器或存储单元的内容。
微机原理第三章习题与参考答案
第三章习题与参考答案3.1 已知 (DS) = 1000H,(ES) = 2000H,(SS) = 3000H,(SI) = 0050H,(BX) =0100H,(BP) =0200H,数据变量DISP的偏移地址为1000。
指出下列指令的寻址方式和物理地址。
(1) MOV AX,0ABH 立即寻址无(2) MOV AX,BX 寄存器寻址无(3) MOV AX,[l000H] 直接寻址 10000H(4) MOV AX,DATA 直接寻址 (DS*16+DATA )(5) MOV AX,[BX] 寄存器间接寻址 10100H(6) MOV AX,ES:[BX] 寄存器间接寻址 20100H(7) MOV AX,[BP] 寄存器间接寻址 30200H(8) MOV AX,[SI] 寄存器间接寻址 10050H(9) MOV Ax,[BX+l0] 寄存器相对寻址 1010AH(10) MOV AX,DISP[BX] 寄存器相对寻址 11100H(1l) MOV AX,[BX+SI] 基址变址寻址 10150H(12) MOV AX,DISP[BX][SI] 相对基址变址寻址 11150H3.2 分别说明下例指令采用的寻址方式和完成的操作功能。
(1) MOV CX,2000H 立即寻址将立即数2000H送CX寄存器(2) MOV DS,AX 寄存器寻址将AX寄存器内容送DS段寄存器(3) AND CH,[1000H] 直接寻址将[DS*16+1000H]单元的内容送CH寄存器(4) ADD [DI],BX 寄存器间接寻址将CL寄存器的内容送[DS*16+DI]单元(5) MOV SS:[3000H],CL 直接寻址将CL寄存器的内容送[SS*16+3000H]单元(6) SUB [BX][SI],1000H 直接寻址将立即数1000H送[DS*16+BX+SI+50H]单元(7) ADD AX,50H[BX][SI] 相对基址变址寻址将[DS*16+BX+SI+50H]单元的内容送AX寄存器(8) PUSH DS 寄存器寻址将DS寄存器的内容送[SS*16+SP]单元(9) CMP [BP][DI],AL 寄存器寻址将AL寄存器的内容送[SS*16+DI+BP]单元3.3 判断下列指令正误,如果错误请指出原因。
大学微机原理第三章习题
大学微机原理第三章习题8086/8088的寻址方式和指令系统习题一.单项选择题1.设置BX=2000h,Si=3000h,指令movax的源操作的有效地址[BX+Si+8]为()。
a、5000hb.5008hc.23008hd.32022h2.设ds=1000h,es=2000h,bx=3000h,指令addal,[bx]的源操作数的物理址为()。
a.13000hb.23000hc.33000hd.3000h3.设ds=2000h,es=3000h,si=200h,指令moves:[si],al的目的操作数的物理地址为()。
a.20210hb.30200hc.50200hd.200h4.指令movmem[bx],ax中的mem是()。
a.原码b.反码c.补码d.移码5.用来作为寄存器间接寻址的寄存器有()个。
a.8b.6c.5d.46.指令mov[BX+Si],Al中的目标操作数使用()段寄存器。
a、 csb.dsc.ssd.es7.指令movbx,[bp+5]中的源操作数使用()段寄存器。
a.csb.dsc.ssd.es8.段内间接寻址只改变()中的内容。
a、 csb之间的间接寻址。
ipc。
政务司司长和知识产权署。
psw9。
仅更改()中的内容。
a.csb.ipc.cs和ipd.psw10.下述指令中不改变psw的指令是()。
a.movax,bxb.andal,0fhc.shrbx,cld.addal,bl11.下述指令中不影响cf的指令是()。
a.shlal,1b.inccxc、添加[bx],ald.subax,bx12.两个整数补码9ch和7ah相加运算后,会产生()。
a.无溢出且无进位b.无溢出但有进位c.有溢出且有进位d.有溢出但无进位13.指令jmpwordptr[bx]属于()寻址。
a、段内直接B.段内间接C.段间直接D.段间间接14。
指令movax的源操作数[BX+Si+8]属于()寻址。
微机原理第三章习题及答案
第 三 章 存 储 器习题答案一、填空题1、某存储器模块的容量为64K 字节,若采用2164(64K ×1位)组成,则需要2164 8 片,若改用2764(8K ×8位),则需 8 片。
解答:容量单个存储器芯片的存储存储器系统的存储容量=片个数构成存储器系统所需芯所以:64*82164=864*1K bitK bit=所需芯片个数片64*82764=88*8K bitK bit=所需芯片个数片2、1K ⅹ8位的RAM 芯片有 10 条地址线, 8 条数据线,若用其组成16K ⅹ8位存储器需要 16 片。
解答:存储单元的个数(字长)通常与地址线的位数相关,每个存储单元存储的二进制位数(位数)与数据线的位数相关。
存储容量为1K*8bit (8K*8位),表示每片RAM 有1K 个存储单元(K 1210=),每个存储单元存储8位二进制数,也可以写为1KB (B 表示8位二进制数,即1个字节Byte ),因此该RAM 芯片有10根地址线(A 0-A 9),8根数据线(D 0-D 7)。
3、现要用6116SRAM 芯片构成8K ×32位的存储器,共需此种芯片 16 片。
解答:8*326116=162*8K bitK bit=所需芯片个数片二、选择题1、SRAM 芯片6116的3个信号CE 、OE 、WE 电平分别为 时,6116的工作方式为读出。
( D )A.1,0,0 B.0,0,0 C.0,1,1 D.0,0,1解答:3个信号CE 、OE 、WE 为6116的控制信号,CE (书中用CS 表示):片选信号,低电平有效,CE 为低电平时,芯片被选中,此时可以进行读写操作,WE :写允许信号,低电平有效时允许将数据写入芯片,OE :输出允许信号,低电平有效时为读操作。
因此当6116处于读工作方式时CE 为0,OE 为0,WE 为1;处于写工作方式时CE 为0,OE 为1,WE 为0。
微机原理与接口技术第三章试题及答案
第三章3-1选择题1、MOVX A,@DPTR指令中源操作数的寻址方式是(B)(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2.ORG 0003HLJMP 2000HORG 000BHLJMP 3000H 当CPU响应外部中断0后,PC的值是(B)(A)0003H (B)2000H (C)000BH (D)3000H3.执行PUSH ACC指令,MCS-51完成的操作是(A)(A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP(B)(C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D)(C)2000H (B)2001H (C)2002H (D)2003H5、51执行完MOV A,#08H后,PSW的一位被置位(D)(A)(A)C (B)F0 (C)OV (D)P6、下面条指令将MCS-51的工作寄存器置成3区(B)(A)MOV PSW,#13H (B)MOV PSW,#18H(B)SETB PSW.4 CLR PSW.3 (d) SETB PSW.3 CLR PSW.47、执行MOVX A,DPTR指令时,MCS-51产生的控制信号是(C)(D)/PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是(A)(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完左边的程序后,PC的值是(C)(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令3-2判断题。
4.MCS-51的相对转移指令最大负跳距是127B。
微机原理第五版第三章习题答案.doc
]、2题略,看书!3. 51系列单片机有哪儿种寻址方式?对内部RAM的。
〜7FH操作有那些寻址方式?对SFR 有哪些寻址方式?答:51单片机共有:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,基址寄存器加变址寄存器间接寻址和相对寻址等6中寻址方式。
对内部RAM的0〜7FH操作可通过直接寻址,寄存器间接寻址对SFR只能通过直接寻址访问对内部RAM的80H〜OFFH的操作只能通过寄存器间接寻址。
(因为SFR的地址也在80H〜OFFH的范围内,故通过采用互不相同的寻址方式,来区分该段地址是指向内部RAM还是指向SFR)4.请写出下列功能对应的数据传送指令⑴MOV A,R0;MOV A,40H;MOVA,@RO;MOV A,#80H(2 )MOV R0,78H;MOV R6,A;MOV R7,#88H;⑶MOV 50H,A;MOVP1,70H;MOVP1,R3;MOVP1,#80H(4 )MOV @R0,A;MOV @R0,30H;MOV @R0, #30H(5)MOV DPTR,#8000H(6)PUSH ACC (不能写成PUSH A,必须用累加器的符号ACC,因为此处是直接寻址);PUSH DPH;POPDPH;POP ACC(7) XCH A,@R0;XCHD A,@R05.写出指令功能(1)((R1))—A; (50H)—A; (Rl)—A(2)(30H)->R7; (A)->R4; 3-R7(3)(A)->50H; (4OH)->P1; (R3)-P1(4)(A)->(Rl); (30H)->(Rl); 5OH->(R1)(5)9000H-DPTR(6)(ACC)-堆栈;(B)—堆栈;堆栈一DPL⑺ A - — ((R1)), (A)o~3 - - ((R1 ))o~3(8) ((P2)(R0))—A; ((A)+(PC)) — A; ((A)+(DPTR))—A; ((DPTR))->A;注意:MOVX指令访问的是外部RAM数据存储器单元;MOVC指令访问的是程序存储器中的地址单元。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 3.3假设(DS)=212AH,( )=0200H, . 假设 假设( ) ,(CS) ,( , ,(BX) (IP)=1200H,( )=0500H, ) ,( , 位移量DATA=40H 位移量 ,(217E0H)=0400H, (217A0H)=2300H,( ) ,( ) , (217E2H)=9000H, ) , 试确定下列转移指令的转移地址。 试确定下列转移指令的转移地址。
• 3.16写出完成下述功能的程序段。 写出完成下述功能的程序段。 . 写出完成下述功能的程序段 中传送一个数据56H到AL寄 (1)从地址 :0012H中传送一个数据 )从地址DS: 中传送一个数据 到 寄 存器。 存器。 MOV DS:BYTE PTR[0012H],56H : , MOV AL,[0012H] , 中的内容左移两位。 (2)将AL中的内容左移两位。 ) 中的内容左移两位 MOV CL,2 , SHL AL,CL , 的内容与字节单元DS: 中的内容相乘。 (3)AL的内容与字节单元 :0013H中的内容相乘。 ) 的内容与字节单元 中的内容相乘 MUL DS:BYTE PTR[0013H] : (4)乘积存入字单元 :0014H中。 )乘积存入字单元DS: 中 MOV DS:[0014H],AX : ,
• 3.15试编写程序,统计 . 试编写程序 统计BUFFER为起始地址的连 试编写程序, 为起始地址的连 个单元中0的个数 续200个单元中 的个数。 个单元中 的个数。 LEA SI,BUFFER 解: , MOV CX,200 , XOR BX,BX , AGAIN:MOV AL,[SI] : CMP AL,0 JNE GOON INC BX GOON: INC SI : LOOP AGAIN HLT
• 3.13将+46和-38分别乘以 ,可应用什么 . 将 分别乘以2, 和 分别乘以 指令来完成?如果除以2呢 指令来完成?如果除以 呢? 解: 分别乘以2, ①将+46和-38分别乘以 ,可分别用逻辑左移 和 分别乘以 指令SHL和算术左移指令 和算术左移指令SAL完成。SHL 完成。 指令 和算术左移指令 完成 针对无符号数,SAL针对有符号数,也可 针对无符号数, 针对有符号数, 针对有符号数 用MUL(无符号数)和IMUL(有符号数) (无符号数) (有符号数) 除以2, 实现+ ②除以 ,用SHR或DIV实现+46/2,用SAR 或 实现 , 实现- 或IDIV实现-38/2。 实现 。
(1)JMP 2300H ) (2)JMP WORD PTR[BX] ) (3)JMP DWORD PTR[BX+DATA] )
解: (1)JMP 2300H ) 段内直接转移 PA=( )×10H+( )+2300H=05500H =(CS) +(IP) =( +( = (2)JMP WORD PTR[BX] ) 段内间接转移 PA=( )×10H+[BX] =(CS) =( + =0200H+(217A0H) =04300H (3)JMP DWORD PTR[BX+DATA] ) 段间间接转移 PA=[BX+DATA]=(217E2H) ×10H+(217E0H) = + =90000H+0400H=90400H
• 3.14已知 . 已知 已知AX=8060H,DX=03F8H,端口 , ,端口PORT1 的地址是48H,内容为 的地址是84H, 的地址是 ,内容为40H;PORT2的地址是 ; 的地址是 , 内容为85H。请指出下列指令执行后的结果。 内容为 。请指出下列指令执行后的结果。 (1)OUT DX,AL ) , 输出到地址为03F8H的端口中 将60H输出到地址为 输出到地址为 的端口中 (2)IN AL,PORT1 ) , 读入一字节数据, )=40H 从PORT1读入一字节数据,则(AL)= 读入一字节数据 )= (3)OUT DX,AX ) , 从地址为03F8H的端口输出 将AX=8060H从地址为 = 从地址为 的端口输出 (4)IN AX,48H ) , 端口读入16位的数据 由48H端口读入 位的数据 端口读入 (5)OUT PORT2,AX ) , 从地址为84H的端口输出 将8060H从地址为 从地址为 的端口输出
PA=(ES)× 10H+( )= ( ) +(BX)= +( )=20800H
(7)寄存器间接寻址 )
PA=(SS)× 10H+( )=16200H ( ) +(BP)= +( )=
(8)寄存器相对寻址 )
PA=(DS) × 10H+( )+ ( ) +(BX)+ +( )+20H=60820H =
(6)MOV DATA[SI],ES:AX ) , : 源操作数形式错, 源操作数形式错,寄存器操作数不加段重设符 (7)JMP BYTE PTR[BX] ) 转移地址的字长至少应是16位 转移地址的字长至少应是 位 (8)OUT 230H,AX ) , 指令, 对I/O指令,端口地址超过 位,必须采用间接寻址 指令 端口地址超过8位 (9)MOV DS,BP ) , 正确 (10)MUL 39H ) MUL指令中操作数不能为立即数 指令中操作数不能为立即数
• 3.4试说明指令 . 试说明指令 试说明指令MOV BX,5[BX]与指令 与指令LEA BX,5[BX] , 与指令 , 的区别。 的区别。 答: 是数据传送类指令, ①MOV BX,5[BX]是数据传送类指令,表示将数据段中以 , 是数据传送类指令 位数据送寄存器BX中 (BX+5)为偏移地址的 位数据送寄存器 中。 )为偏移地址的16位数据送寄存器 是取偏移地址指令, ② LEA BX,5[BX]是取偏移地址指令,结果为 , 是取偏移地址指令 (BX)=(BX)+5,即操作数的偏移地址为(BX)+5 ) ( ) ,即操作数的偏移地址为( ) • 3.5设堆栈指针 的初值为 设堆栈指针SP的初值为 ,(AX) . 设堆栈指针 的初值为2300H,( )=50ABH, ,( , (BX)=1234H。执行指令 ) 。执行指令PUSH AX后,( )=?, 后,(SP) ?, 再执行指令PUSH BX及POP AX之后,(SP)=?( ) 再执行指令 及 之后,( ) ?(AX) 之后,( ?( =?( )=? ?(BX) ? ?( 执行指令PUSH AX后,( )=22FEH 解:执行指令 后,(SP) 执行指令PUSH BX及POP AX之后, 之后, 执行指令 及 之后 ,(AX) ( ) (SP)=22FEH,( )=(BX)=1234H ) ,(
• 3.12执行以下两条指令后,标志寄存器 . 执行以下两条指令后 标志寄存器FLAGS 执行以下两条指令后, 的六个状态位各为什么状态? 的六个状态位各为什么状态? MOV AX,84A0H , ADD AX,9460H , :(AX) 解:( )=1900H 在两个16位数进行加法运算时 位数进行加法运算时, 在两个 位数进行加法运算时,对CF、ZF、SF、 、 、 、 OF会产生影响,但对 和AF标志位,只有其低 会产生影响, 标志位, 会产生影响 但对PF和 标志位 只有其低8 位运算影响它们的状态。 位运算影响它们的状态。 AF=0,PF=1,CF=1, , , , ZF=0,SF=0,OF=1 , ,
• 3.7已知(AL)=7BH,( )=38H,试问执 . 已知 已知( ) ,(BL) ,( , 行指令ADD AL,BL后,AF、CF、OF、PF、 行指令 , 后 、 、 、 、 SF和ZF的值各为多少? 的值各为多少? 和 的值各为多少 解: (AL)=B3H ) AF=1,CF=0,OF=1, , , , PF=0,SF=1,ZF=0 , , • 3.8试比较无条件转移指令、条件转移指令、调 . 试比较无条件转移指令 条件转移指令、 试比较无条件转移指令、 用指令和中断指令有什么异同?( ?(略 用指令和中断指令有什么异同?(略)
• 3.10按下列要求写出相应的指令或程序段 . 按下列要求写出相应的指令或程序段 内容为0的指令 (1)写出两条使 内容为 的指令; )写出两条使AX内容为 的指令; MOV AX,0 , XOR AX,AX , AND AX,0 , SUB AX,AX , 寄存器中的高4位和低 位互换; (2)使BL寄存器中的高 位和低 位互换; ) 寄存器中的高 位和低4位互换 MOV CL,4 CL, ROL BL,CL , 或 ROR BL,CL , (3)屏蔽CX寄存器的 )屏蔽 寄存器的b11、b7和b3位; 、 和 位 寄存器的 AND CX,0F777H , 中的b0和 位是否为 位是否为1。 (4)测试 中的 和b8位是否为 。 )测试DX中的 TEST DX,0101H ,
第三章 习题
• 3.1什么叫寻址方式?8086/8088CPU共有哪几种寻址方 . 什么叫寻址方式 什么叫寻址方式? 共有哪几种寻址方 ?(略 式?(略) • 3.2设(DS)=6000H,( )=2000H,( ) . 设 ,(ES) ,(SS) ) ,( ,( =1500H,( )=00A0H,( )=0800H,( ) ,(SI) ,(BX) ,(BP) ,( ,( ,( =1200H,数据变量 ,数据变量VAR为0050H。 为 。 请分别指出下列各条指令源操作数的寻址方式? 请分别指出下列各条指令源操作数的寻址方式?它的物理 地址是多少? 地址是多少? (1)MOV AX,BX ) , (3)MOV AX,VAR ) , (4)MOV AX,VAR[BX][SI] ) , (5)MOV AL,‘B’ ) , (6)MOV DI,ES:[BX] ) , : (7)MOV DX,[BP] ) , (8)MOV BX,20H[BX] ) , (2)MOV DL,80H ) ,
• 3.9试判断下列程序执行后,BX中的内容。 . 试判断下列程序执行后 试判断下列程序执行后, 中的内容 中的内容。 MOV CL,3 , MOV BX,0B7H , ROL BX,1 , ROR BX,CL , 内容不带进位循环左移1位 解:该程序是首先将BX内容不带进位循环左移 位, 该程序是首先将 内容不带进位循环左移 右移3位 即相当于将BX内容不带进位循 再循环 右移 位,即相当于将 内容不带进位循 环右移2位 环右移 位, 所以结果为( ) 所以结果为(BX)=C02DH