微机原理第四章课后习题答案
微机原理作业与答案第四章
微机原理作业与答案第四章第四章汇编语⾔程序设计4-2 下列程序执⾏后,寄存器AX,BX,CX的内容分别是多少?ORG 0202HDA_WORD DW 20HMOV AX,DA_WORD ;(AX)=0020HMOV BX,OFFSET DA_WORD ;(BX)=0202H (BX)=0,这是书中的参考答案MOV CL,BYTE PTR DA_WORD ;(CL)=20H(因PTR,则字的第⼀字节)MOV CH,TYPE DA_WORD ;(CH)=2(变量类型数值);(CX)=0220H4-4 试编制⼀程序(不是程序段),把CHAR1中各⼩写字母分别转换为对应的⼤写字母,并存放在CHAR2开始的单元中DDD0 SEGMENTCHAR1 DB ‘abcdef’N EQU $-CHAR1;变量必须先定义后使⽤,⽽不能相反CHAR2 DB N DUP(0);不能把此句与上⼀句对调DDD0 ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDS ;P126(代码段和堆栈段是不可少的)CSEG SEGMENTASSUME CS:CSEG,DS:DDD0,SS:STACK START: MOV AX,DDD0 MOV DS,AX ;MOV DX,AXMOV ES,AX ;只要SI,DI都⽤MOV SI,0 ;LEA SI,CHAR1MOV DI,0 ;LEA DI,CHAR2MOV CX,NAGAIN: MOV AL,CHAR1[SI] ; MOV AL,[SI]SUB AL,20HMOV CHAR2[DI],AL ; MOV [DI],ALMOV DL,AL ;不是必须的,但做实验是有⽤的。
MOV AH,2INC SIINC DI LOOP AGAINMOV AH,4CHINT 21H ;不是必须的CSEG ENDSEND START第⼆种⽅法:DDD0 SEGMENTCHAR1 DB ‘abcdef’N EQU $-CHAR1CHAR2 DB N DUP(0) DDD0 ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDS ;P126(代码段和堆栈段是不可少的)CSEG SEGMENTASSUME CS:CSEG,DS:DDD0,SS:STACKSTART: MOV AX,DDD0 MOV DS,AXMOV ES,AXLEA SI,CHAR1LEA DI,CHAR2MOV CX,NCLD ;不写(隐含)也是0(递增)但不能STDAGAIN: LODSB ;执⾏⼀次,隐含修改SISUB AL,32stosb ;MOV [DI],AL;执⾏⼀次, 隐含修改DInop ;INC DILOOP AGAIN ;LOOP指令只修改CX,不管SI,DIMOV AH,4CHINT 21H ;不是必须的CSEG ENDSEND START4-6在BUF地址处起,存放有100个字节的字符串,设其中有⼀个以上的“A”字符,编程查找出第⼀个“A”字符相对起始地址的距离,并将其存⼊LEN单元。
单片机微型计算机原理及接口技术课后习题答案第4章
单片机微型计算机原理及接口技术课后习题答案第4章4-2 试述指令MOV A,R0和MOV A,@R0的区别两条指令的目的操作数相同,两条指令的区别在于源操作数来源不同:MOV A,R0 指令的源操作数就是R0寄存器的内容;而MOV A,@R0 指令的源操作数是位于存储器单元内,且存储器单元的地址是R0寄存器的内容。
4-3 试述指令MOV A,20H和MOV A,#20H的区别MOV A,20H 源操作数是直接寻址,20H表示源操作数所在存储器单元的地址。
MOV A,#20H 源操作数是立即数寻址,#20H是立即数,也就是源操作数。
4-4 说明一下指令中源操作数所在的存储器类型。
(1)MOV A,#30H; 立即数#30H,就是源操作数,存在于指令中,所以位于程序存储器。
(2)MOV A,30H; 30H是源操作数所在数据存储单元的地址,所以源操作数位于数据存储器。
(3)MOVC A,@A+DPTR;源操作数是变址寻址, 助记符MOVC表示源操作数位于程序存储器。
(4)MOVX A,@DPTR; 源操作数是寄存器间接寻址, 助记符MOVX表示源操作数位于外部数据存储器。
4-5 判断下列指令书写是否正确:(1)MOV A,B; ✔(2)MOV A,#3000H ; ✘,因为A是8位寄存器,而#3000H是16位数值,没法全部存到A里(3)INC,#20H ; ✘只能INC A/direct/Rn/@Ri/DPTR(4)MOV 5,A ; ✔,注意目的操作数是直接寻址方式,不是立即寻址(5)MOV 30H,40H; ✔(6)MOV B,@DPTR ; ✘,@DPTR寻址用于MOVX指令,不能用于MOV指R(7)CJNE 30H,#80H,NEXT ; ✘,CJNE指令格式只能是CJNE A/Rn/@Ri,#data,rel或CJNE A,direct,rel(8)POP A ; ✘只能是直接寻址方式POP direct,正确的是POP ACC(9)PUSH ACC; ✔(10)SJMP 2000H ; ✘rel的范围是-128~127(用补码表示其值)共256B范围4-6 设ACC=12H,B=64H,SP=60H,30H中存放的是78H,试分析下列程序执行后,ACC、B、30H、SP中的内容分别为多少,并画出堆栈示意图。
微机原理 第4章作业答案
第3章指令系统3.9 设段寄存器DS=1000H,SS=2000H,ES=3000H,通用寄存器BX=4000H,BP=5000H,SI=6000H,DI=7000H。
在下列各指令中指出存储器操作数的寻址方式,求出有效地址EA、物理地址PA,并分别用物理地址和逻辑地址说明指令执行结果。
(1)MOV CX, [2300H]直接寻址EA=2300HPA=DS*16+EA=1000H*16+2300H=12300H 执行结果:(12300H)→CL,(12301H)→CH (2)MOV BYTE PTR [BX], 8FH寄存器间接寻址EA=BX=4000HPA=DS*16+EA=1000H*16+4000H=14000H 执行结果:8FH→(14000H)(3)MOV DH, [BP+3000H]基址寻址EA=BP+3000H=8000HPA=SS*16+EA=2000H*16+8000H=28000H 执行结果:(28000H)→DH(4)MOV ES: [SI+1210H], AX变址寻址EA=SI+1210H=7210HPA=ES*16+EA=3000H*16+7210H=37210H 执行结果:AL→(37210H),AH→(37211H) (5)MOV [BX+DI+50H], AL基址变址位移寻址EA=BX+DI+50H=0B050HPA=DS*16+EA=1000H*16+0B050H=1B050 H执行结果:AL→(1B050H)(6)INC WORD PTR [BX+SI]基址变址寻址EA=BX+SI=0A000HPA=DS*16+EA=1000H*16+0A000H=1A000 H执行结果:(1A000H)中存放的字的值加13.11 指出下列指令中源操作数的寻址方式。
(1)MOV BL, 0F9H 立即寻址(2)ADD [BX], SI 寄存器寻址(3)SUB CL, [4000H] 直接寻址(4)CMP DX, [SI] 寄存器间接寻址(5)AND SL, [BX+1] 基址寻址(6)OR BP, [DI+2100H] 变址寻址(7)XOR AX, [BP+SI] 基址变址寻址(8)MOV CX, 300 立即寻址3.12 下列指令都是非法的,指出各指令错在哪里?(1)MOV SI, AH两个操作数字长不一致(2)MOV 70H, BL立即数不能做目的操作数(3)MOV CX, F123H十六进制的数以字母打头必须在前面补0 (4)MOV [BX], 6AH两个操作数的字长不确定(5)MOV ES, 5000H立即数不能直接送段寄存器(6)MOV [DI], [3000H]两个操作数不能同为内存操作数(7)MOV DS, SS两个操作数不能同为段寄存器(8)MOV CS, AX不能对CS赋值(9)MOV AL, [CX]寄存器间接寻址中不能使用CX(10)MOV [BX+BP], DX存储器寻址方式中表示有效地址不能同为两个基址寄存器(11)MOV BH, [SI+DI+2]存储器寻址方式中表示有效地址不能同为两个变址寄存器(12)PUSH AL入栈出栈操作必须以字为单位(13)LEA AX, BXLEA指令中源操作数必须为存储器寻址方式(14)LDS BL, [5100H]LDS指令中目的操作数必须为16位的通用寄存器(15)IN AH, DXIN指令中目的操作数必须为AL或AX (16)OUT 288H, AL输入输出指令中端口地址为16位,必须先送给DX(17)ADD [2400H], 1234H两个操作数的字长不确定(18)XOR [2500H], [BX+10H]两个操作数不能同为内存操作数(19)INC [SI]操作数的字长不确定(20)MUL 10MUL指令的操作数不能为立即数(21)IDIV [BP+DI+1300H]操作数的字长不确定(22)SAL AL, 2移位次数大于1必须先送给CL3.14 设SP=2000H,AX=3000H,BX=5000H,执行以下3条指令后,问SP=?AX=?BX=? PUSH AX ;SP减2,栈顶元素为3000HPUSH BX ;SP减2,栈顶元素为5000HPOP AX ;SP加2,将栈顶元素5000H弹出至AX结果:SP=1FFEH,AX=5000H,BX=5000H3.16 下列程序执行完后,AX=?BX=?CX=? MOV AX, 1122HMOV BX, 3344HPUSH AX ;栈顶元素为1122H POP CX ;将栈顶元素1122H 弹出至CXXCHG BX, CX ;BX=1122H,CX=3344HLEA CX, [BX] ;CX=BX=1122H结果:AX=1122H,BX=1122H,CX=1122H3.17 CPU分别执行下列各程序段后,写出各个执行结果的状态标志位OF、SF、ZF、AF、PF、CF的值。
微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)
微机原理、汇编语言与接口技术-第四章-习题答案-人民邮电出版社-(周杰英-张萍-郭雪梅-著)第4章汇编语言程序设计习题与参考答案1、指出以下数据定义伪指令所分配的字节数(8086系统)。
(1)DATA1 DB 10,?,‘A’(2)DATA2 DW 10 DUP(2,3 DUP(?),1)(3)DATA3 DB ‘HELLO,WORLD!’,‘$’(4)DATA4 DW D ATA4解:(1)3字节;(2)100字节;(3)13字节;(4)2字节。
2、指出以下数据定义伪指令所分配的字节数(80386系统)。
(1)DATA1 DF 12,34,56(2)DATA2 DF D ATA2(3)DATA3 DQ 0,10 DUP(?)(4)DATA4 DT 0,1,2解:(1)18字节;(3)6字节;(3)88字节;(4)30字节。
3、指出以下指令中哪些是无效的,并说明原因。
(1)ADDR DB $(2)DATA DB F0H,12H(3)1_DATA DW 1234H(4)@VAR DW V AR1 ;VAR1为一个字节变量(5)MOV AX,[10-VAR1] ;VAR1为一个字变量(6)MOV BX,[VAR2*2+1] ;VAR2为一个字变量解:(1)非法,地址计数器$是32位数;(2)非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;(3)非法,变量名非法,不能以数字开头;(4)合法;(5)非法,地址表达式不能是“常数-地址”;(6)非法,地址表达式不能出现乘法。
4、假设已定义数据段如下:DATA SEGMENTORG 100HDATA1 DB 10 DUP(1,2,3)DATA2 DW DATA1,$DATA ENDS且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。
请指出以下指令执行后,相应的寄存器中的内容。
(1)MOV AX,WORD PTR DATA1 ;(AX)=?(2)MOV BX,DATA2 ;(BX)=?(3)MOV CX,DATA2+2 ;(CX)=?(4)MOV DX,OFFSET DATA2 ;(DX)=?(5)MOV SI,SEG DATA1 ;(SI)=?(6)MOV DI,LENGTH DATA1 ;(DI)=?(7)MOV SP,TYPE DATA1 ;(SP)=?(8)MOV BP,SIZE DATA2 ;(BP)=? 解:(注意是16进制,算的时候要转换) (1)(AX)=0201H;(2)(BX)=0100H;(3)(CX)=0120H;(4)(DX)=011EH;(5)(SI)=1234H;(6)(DI)=000AH;(7)(SP)=0001H;(8)(BP)=0002H。
微机原理及接口第四章习题答案
微机原理及接口第四章习题答案“微机系统原理与接口技术”第四章习题解答1.判断下列陈述是否正确。
如果是错误的,请解释原因并改正。
(1)伪指令在汇编过程中不会产生二进制代码。
(2)宏和过程之间的相同之处在于,它们可以用来简化源程序的编写,简化目标代码。
(3)在计算机中,高级语言通常需要转换成汇编语言才能执行。
(4)汇编语言程序通常包括编辑、汇编、链接和调试。
回答:(1)正确。
(2)错误。
宏不能精简目标代码。
(3)错了。
高级语言程序在编译或解释后直接转换为目标代码。
(4)正确。
2.已知数据和符号的定义a1db?a2db8k1equ100判断以下说明的正确性和错误性,并解释错误说明的原因。
(1)mov(2)mov(3)movmov(4)cmp(5)k1k1,axa2,ahbx,k1[bx],dxa1,a2equ200回答:(1)错误。
K1是一个符号常量,相当于此处的立即数100,因此不能将其用作目标操作数。
(2)正确。
(3)对。
(4)错误。
a1、a2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。
(5)错了。
除非使用purge释放原始值,否则无法重新分配使用EQ定义的符号。
3.若数据段中有定义num1equ23hnum2dw0则指令movnum2,num1的源、目操作数的寻址方式以及指令执行后num2+1单元的内容分别是什么?答:movnum2和num1指令的源操作数使用立即寻址,目标操作数使用直接寻址。
执行指令后,num2+1单元的内容为0。
4.设ds=6000h,bx=8432h,ss=5000h,sp=3258h,内存69632h~69635h单元的内容依次是00h、11h、22h、33h。
4字节指令calldwordptr[bx+1200h]本身位于2000h:3250h处的双字单元中。
当8086执行该指令后转移至子程序入口时,cs、ip、ss、sp各寄存器以及栈顶2个字单元的内容分别是多少?答:执行结果为CS=3322h,IP=1100h,SS=5000h,SP=3254h。
微机原理第四章习题及答案
第四章8086/8088指令系统一、选择题1、在数据传送指令中要注意:立即数只能作为( A )。
A.源操作数B.源操作数或目的操作数C.目的操作数D.源操作数和目的操作数2、对堆栈进行存取操作时需遵守的原则是( B )。
A.先进先出B.先进后出C.任意顺序D.以上都不对3、MOV AX,[BP+SI]指令源操作数隐含的段地址为( D )。
A.CS B.DS C.ES D.SS4、堆栈指针SP的作用是用来指示( C )。
A.栈底地址B.下一条要执行指令的地址C.栈顶地址D.上一条要执行指令的地址5、在指令MOV AX,0执行后,CPU状态标志位ZF的取值( D )。
A.为0 B.为1 C.不确定D.没影响6、下列寄存器组中,全部用于寄存器间接寻址方式中的为( C )。
A.AX,BX,CX,IP B.BX,BP,DS,SIC.BP,BX,SI,DI D.IP,SP,AX,BX7、若8086 CPU工作于最小方式,则执行指令OUT DX,AL时其引脚信号M /IO和DT/R的电平应是( B )。
A.低,低B.低,高C.高,低D.高,高8、执行指令MOV AX,DATA后,AX中值为变量DATA的( D )。
A.段值B.偏移量值C.数据类型值D.地址DATA单元中的值9、下列指令中,不正确的指令是。
( D )A.MOV AX,BX B.MOV AX,[BX]C.MOV AL,BL D.MOV AL,[BL]10、8086CPU在执行MOV AL,[BX]指令的总线周期内,若BX存放的内容为1010H,则BHE和A0的状态是( C )。
A.0,0 B.0,1C.1,0 D.1,111、若DF=1,执行串操作指令MOVSW时,地址指针变化方式是( D )。
A.SI=SI + 1,DI = DI + 1B.SI = SI + 2,DI = DI + 2C.SI = SI-1,DI = DI-1D.SI = SI-2,DI = DI-212、条件转移指令JNE的条件是( C )。
微机原理 第四章答案
15、设(DS)=C000H,(C0010H)=0180H, (C0012H)=2000H,执行LDS SI,[10H]后, (SI)=?, (DS)=? (SI)=0180 H,(DS)=2000 H
REP STOSW 程序段的功能:
将起始地址为0404 H开始的80 H(128)个字单元清成0 或将起始地址为0404 H开始的100 H(256)个字节单元清成0
11
第4章 微型计算机原理作业情况
13、 设(BX)=6B30H,(BP)=0200H,(SI)=0046H, (SS)=2F00H,(2F246H)=4154H,试求执行 XCHG BX,[BP+SI]后, (BX)=?,(2F246H)=? (BX)=4154H (2F246H)=6B30H
6
第4章 微型计算机原理作业情况
8、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1) MOV AL,19H ;
ADD AL,61H ;(AL)=7AH
OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
(2) MOV AL,19H ;
SUB AL,61
;(AL)=0DCH
OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1
(1) MOV CL,20H[BX][SI] ;(CL)=0F6 H
(2) MOV [BP][DI],CX
;(1E4F6 H)=5678 H
(3) LEA BX,20H[BX][SI] ;(BX)=0056 H
MOV AX,2[BX]
;(AX)=1E40 H
第四章微机原理习题答案
第四章习题答案一、写出下列指令的源操作数和目的操作数的寻址方式。
1. MOV AL,AH ;寄存器寻址2. MOV AL,TABLE[SI];寄存器相对寻址3. MOV [SI][BP],CL ;基址变址寻址4. AND AL,0FH ;立即数寻址5. ROR AL,CL ;寄存器寻址6. JNL NEXT ;程序地址相对寻址7. MOV DI,12 ;立即数寻址8. MOV [DI+1],BYTE PTR 12 ;基址相对寻址9. JMP WORD PTR [BX];程序地址间接寻址10.LOOP AGAIN ;程序地址相对寻址二、问答题1. 8086系统中,当对SS和SP寄存器的值进行修改时,有什么特殊规定?这样做的原因是什么?答:凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下条指令执行之后,又自动恢复对SS寄存器赋值前的中断开放情况。
这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。
2. 用乘法指令时,特别要注意先判断用有符号数乘法指令还是用无符号数乘法指令,这是为什么?答: 用乘法指令时,特别要注意先判断用有符号数乘法指令还是用无符号数乘法指令,是因为在执行乘法运算时,要想使无符号数相乘得到正确的结果,有符号数相乘时,就得不到正确的结果;要想使有符号数相乘得到正确的结果,无符号数相乘时,就得不到正确的结果。
3.设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX指令后,栈顶地址和栈顶2个字节的内容分别是什么?答: 当前栈顶的地址2010H*16+FE00H=2FF00H;执行PUSH BX指令后,堆栈地址指针SP 减2,则栈顶地址为2FEEDH;栈顶2个字节的内容为57H、34H。
三、编程练习1.串操作指令设计实现以下功能的程序段:首先将100H个数从2170H处搬到1000H处,然后,从中检索相等于AL中字符的单元,并将此单元值换成空格符。
微机原理第4章练习题及答案
微机原理第4章练习题及答案第4章80某86指令系统一、自测练习题㈠选择题1.MOVA某,[B某+SI]的源操作数的物理地址是()。
A.(DS)某16+(B某)+(SI)B.(ES)某16+(B某)+(SI)C.(SS)某10H+(B某)+(SI)D.(CS)某10H+(B某)+(SI)2.MOVA某,[BP+Sl]的源操作数的物理地址是()。
A.(DS)某10H+(BP)+(SI)A.(ES)某16+(BP)+(SI)C.(SS)某16+(BP)+(SI)D.(CS)某10H+(BP)+(SI)3.MOVA某,ES:[B某+SI]的源操作数的物理地址是()。
A.(DS)某16+(B某)+SI)B.(ES)某10H+(B某)+(SI)C.(SS)某10H+(B某)+SI)D.(CS)某16+(B某)+(SI)4.JMPWORDPTR[DI]是()。
A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移5.JMPFARPTRBlOCK(BLOCK是符号地址)是()。
A.段内间接转移B.段间间接转移C..段内直接转移D.段间直接转移6.INC指令不影响()标志。
A.OFB.CFC.SFD.ZF7.条件转移指令JNE的测试条件是()。
A.ZF=1B.CF=0C.ZF=0D.CF=18.下列指令中,有语法错误的是()。
A.MOV[SI],[DI]B.INAL,D某C.JMPWORDPTR[B某+8]D.PUSHWORDPTR20[B某+S1]9.假定(SS)=2000H,(SP)=0100H,(A某)=2107H,执行指令PUSHA某后,存放数据21H的物理地址是()。
A.20222HB.20221HC.200FEHD.200FFH10.对于下列程序段:AGAIN:MOVAL,[SI]MOVES:[DI],ALINCSIINCDILOOPAGAIN也可用指令()完成同样的功能。
A.REPMOVSBB.REPLODSBC.REPSTOSBD.REPESCASB11.对于下列程序段:AGAIN:MOVES:[DI],ALINCDILOOPAGAIN可用指令()完成。
微机原理第四章习题答案
微机原理课后习题解第四章1. 试分析下列程序段:ADD AX,BXJNC L2SUB AX,BXJNC L3JMP SHORT L5L2:……L3:……L5:……如果AX、BX的内容给定如下:AX BX(1)14C6H 80DCH(2)B568H 54B7H问该程序在上述情况下执行后,程序转向何处?解:(1)转向L2因为(AX)+(BX)没有进位。
(2)转向L5因为(AX)+(BX)= 0A1FH,有进位。
然后(AX)-(BX)有进位。
2. 编写程序,使用三种以上的方法,将存储器中DS:2000H开始的地址单元中的100字节数据复制到ES:3000H开始的存储器地址单元中。
解:DATA SEGMENTORG 2000HD1 DB 100 DUP(?)DATA ENDSEXTRA SEGMENTORG 3000HD2 DB 100 DUP(0)EXTRA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:EXTRA START: MOV AX, DATAMOV DS, AXMOV AX, EXTRAMOV ES, AXLEA SI, D1LEA DI, ES:D2MOV CX, 100;L1: MOV AL, [SI]; MOV ES:[DI], AL; INC SI; INC DI; LOOP L1REP MOVSBHLT(1)利用通用传送指令MOV MOV SI,2000HMOV DI,3000HMOV CX,100AA:MOV AL,[SI]MOV [DI],ALINC SIINC DILOOP AAHLT(2)利用交换指令XCHGMOV SI,2000HMOV DI,3000HMOV CX,100AA:MOV AL,[SI]XCHG [DI],ALINC SIINC DILOOP AAHLT(3)利用换码指令XLATMOV BX,2000HMOV DI,3000HMOV CX,100AA:XOR AL,ALXLATMOV [DI], ALINC BXINC DILOOP AAHLT(4)利用堆栈实现数据传送MOV SI,2000HMOV DI,3000HMOV CX,50AA:PUSH [SI]POP [DI]INC SIINC SIINC DIINC DILOOP AAHLT(5)利用串操作指令REP MOVSBMOV SI,2000HMOV DI,3000HMOV CX,100CLD ;DF=0,SI、DI自动+1REP MOVSBHLT3. 在DA1开始的4个单元中存放着一个32位数,求出其中的“1”的个数,并存入COUNT单元中。
微型计算机原理与接口技术第四章课后答案
第四章1. 下列变量各占多少字节?A1 DW 23H,5876HA2 DB 3 DUP(?),0AH,0DH, ‘$’A3 DD 5 DUP(1234H, 567890H)A4 DB 4 DUP(3 DUP(1, 2,’ABC’))答:A1占4个字节A2占6个字节A3占40个字节A4占60个字节2. 下列指令完成什么功能?MOV AX,00FFH AND 1122H+3344HMOV AL,15 GE 1111BMOV AX,00FFH LE 255+6/5AND AL, 50 MOD 4OR AX, 0F00FH AND 1234 OR 00FFH答:(1)将0066H传送给AX(2)将0FFH传送给AL(3)将0FFFFH传送给AX(4)AND AL,02H(5)OR AX,00FFH3. 有符号定义语句如下:BUF DB 3,4,5,’123’ABUF DB 0L EQU ABUF-BUF求L的值为多少?答:L=64. 假设程序中的数据定义如下:PAR DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PAR求PLENTH的值为多少?表示什么意义?答:PAR的偏移地址为0,PLENTH当前偏移地址$=2+16+4=22, $-PAR=22,故PLENTH 的值为22。
若在PLENTH所在行有变量定义,则$表示该变量的偏移地址,即$表示PLENTH所在行的当前偏移地址。
故PLENTH表示从当前行到PAR之间定义的变量所占的字节个数。
5. 对于下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?DA1 DB ?DA2 DW 10 DUP(?)DA3 DB ‘ABCD’MOV AX, TYPE DA1MOV BX, SIZE DA2MOV CX, LENGTH DA3答:AX=1,BX=20,CX=16. 下段程序完成后,AH等于什么?IN AL, 5FHTEST AL, 80HJZ L1MOV AH, 0JMP STOPL1: MOV AH, 0FFHSTOP: HLT答:讨论从端口5FH输入的数据最高位的情况。
微机原理第四章答案
“微处理器系统原理与嵌入式系统设计”第四章习题解答4.3 微机系统中总线层次化结构是怎样的?片内总线、片间总线、系统内总线、系统外总线.。
4.4 评价一种总线的性能有那几个方面?总线时钟频率、总线宽度、总线速率、总线带宽、总线的同步方式和总线的驱动能力等。
4.5 微机系统什么情况下需要总线仲裁?总线仲裁有哪几种?各有什么特点?总线仲裁又称总线判决,其目的是合理的控制和管理系统中多个主设备的总线请求,以避免总线冲突。
当多个主设备同时提出总线请求时,仲裁机构按照一定的优先算法来确定由谁获得对总线的使用权。
集中式(主从式)控制和分布式(对等式)控制。
集中式特点:采用专门的总线控制器或仲裁器分配总线时间,总线协议简单有效,总体系统性能较低。
分布式特点:总线控制逻辑分散在连接与总线的各个模块或设备中,协议复杂成本高,系统性能较高。
4.6总线传输方式有哪几种?同步总线传输对收发模块有什么要求?什么情况下应该采用异步传输方式,为什么?总线传输方式按照不同角度可分为同步和异步传输,串行和并行传输,单步和突发方式。
同步总线传输时,总线上收模块与发模块严格按系统时钟来统一定时收发模块之间的传输操作。
异步总线常用于各模块间数据传送时间差异较大的系统,因为这时很难同步,采用异步方式没有固定的时钟周期,其时间可根据需要可长可短。
4.12 串行传输的特点是什么?1)传输方式可分为单工方式、半双工方式、全双工方式。
2)对传输速率有严格要求。
3)采用单条传输线来传输数据,减小了传输成本,增加了收发双方的复杂性。
4)传输过程中,由于引起误码,需差错控制。
4.14发送时钟和接收时钟与波特率有什么关系?其关系如下:1、同步通信是用时钟信号加载传输信号的,因些收发时钟频率=收发波特率;2、异步通信情况下的话,接收时钟频率=n*(接收波特率) (其中n=1,16,64);发送时钟频率可以等于波特率,也可以为n*(发送波特率),但考虑到时钟与接收时钟一致,故发送时钟频率=n*(发波特率) (其中n=1,16,64)。
微机原理陈慈发习题答案
第4章习题解答4.1 画出下列语句中的数据在存储器中的存储情况。
ARRAYB DB 63,63H,‘ABCD’,3DUP(?),2 DUP(1,3)ARRAYW DW 1234H,5,‘AB’,‘CD’,?,2DUP(1,3)解:地址数据地址数据ARRAYB 3FH 42H63H 41H41H 44H42H 43H43H ?44H ?? 01H? 00H? 03H01H 00H03H 01H01H 00H03H 03H34H 00H12H05H00H4. 2. 程序中数据定义如下:DATA1 DW ?DATA2 DB 32DUP(?)DATA3 DD ?DLENGTH EQU $-DATA1此时DLENGTH的值是多少?解:DLENGTH=38=26H4. 3. 程序中数据定义如下:ARRAY D B ‘ABCDEF’RESULT DB ?TABLE DW 20 DUP(?)则执行指令MOV AX,TYPE RESULT后,AX=?MOV BX,TYPE TABLE后,BX=?MOV CX,LENGTH TABLE后,CX=?MOV DX,LENGTH ARRAY后,DX=?MOV SI,SIZE TABLE后,SI=?MOV DI,SIZE ARRAY后,DI=?解:AX=1; BX=2; CX=20; DX=1;SI=40; DI=14. 4. 指令AND AX,7315H AND 0FFH中,两个AND有什么差别?这两个AND 操作分别在什么时候执行?解:左为助记符,由CPU执行指令时运算;右为运算符,由汇编程序在汇编时运算。
4. 5. 设BX=1034H,则执行下列指令MOV AX,BX AND0FFHMOV CX,BX EQ1234H后,AX和CX各为多少?若BX=1234H,则结果如何?解:AX=0034H; CX=0000H;AX=0034H;CX=FFFFH4. 6. 设已知语句为:ORG 0024HDATA1 DW 4,12H,$+4则执行指令MOV AX,DATA1+4后AX的值是多少?解:AX=002CH4. 7. 已知数据定义语句为:BUFFER DB 16 DUP(O,2DUP(1))则其中字数据单元内容为0100H的单元数是多少?解:16个4. 8. 要在以DA1为首址的数据区中依次存放下列数据;‘A’,‘B’,O,0,‘C’,‘D’,0,0请分别用DB、DW和DD语句实现。
微机原理与接口技术 第四章 课后答案
第四章参考答案1.设下列指令中的所有标识符均是类型属性为字的变量,请指出下列指令中哪些是非法的指令?错误的原因?⑴MOV BP,AL⑵MOV WORD_OP1,WORD_OP2⑶MOV SA VE_WODR,DS⑷MOV SP,SS:DA TA_WORD[BX][SI]⑸MOV [BX][SI],2解:(1)非法。
源操作数与目的操作数类型不符。
(2)合法。
(3)合法。
(4)合法。
(5)非法。
需说明操作数类型。
2.设V AR1和V AR2为字变量,LAB为标号,试指出下列指令的错误之处:⑴ADD V AR1,V AR2⑵SUB AL,V AR1⑶JMP LAB[SI]⑷JNZ V AR1⑸JMP NEAR LAB解:(1)两个操作数均为符号地址。
(2)两个操作数的类型不同。
(3)(4)(5)3.画图说明下列语句所分配的存储空间及初始化的数据值。
⑴BYTE_V AR DB ‘BYTE’,12,-12H,3 DUP(0,?,2 DUP(1,2),?)⑵WORD_V AR DW 5 DUP(0,1,2),?,-5 ‘BY’,’TE’,256H解:(1)(2)41H59H54H45H0CHF4H00H?01H02H01H02H00H?01H02H01H02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H 00H 00H 00H 01H 00H 02H ??FBH FFH 59H 42H 45H 54H 56H 02H4.设程序中的数据定义如下:PARTNO DW ?PNAME DB 16 DUP(?)COUNT DD ?PLENTH EQU $-PARTNO问PLENTH的值为多少?它表示什么意义?解:PLENTH的值为22(16H)。
表示当前位置与PARTNO之间有22个字节空间。
微机原理与接口技术 第4章课后作业答案.
6
4.7执行下列指令后,AX寄存器的内容是多少? TABLE DW 10,20,30,40,50 ENTRY DW 3 . . . MOV BX,OFFSET TABLE ADD BX,ENTRY MOV AX,[BX] 解:(AX)=1E00H 4.8 编写程序段,将STRING1中的最后20个字符移到STRING2中(顺序不变)。 解:首先确定STRING1中字符串的长度,因为字符串的定义要求以‘$’符号结尾, 可通过检测‘$’符确定出字符串的长度,设串长度为COUNT,则程序如下: LEA SI,STRING1 LEA DI,STRING2 ADD SI,COUNT-20 MOV CX,20 CLD REP MOVSB
微机原理第4章习题与答案
……
PRGM ENDS
(3)ALPHA EQU BETA
(4) COUNT EQU 100
COUNT EQU 65
(5) GOON DW 10DUP(?)
……
JMP GOON
答案:
(1)字节变量,范围在0~255
(2)定义段的伪指令为SEGMENT
(3)BETA必须先定义
(4)EQU不能重复定义,在下一次定义前必须用PURGE撤消
MOV BX, F1
答案:
(1)
DATA SEGMENT PARA 'DATA' AT 46H
QA EQU 255;QA=255
QA1=QA GT 3000;255大于3000,命题假,QA1=0
QA2=0FFFH;QA2=0FFFH
QA3 EQU QA2 XOR 255;QA3=0FFFH⊕0FFH=0F00H
AND AX, 0FFH;AX=0045H
MOV BX, WORD PTR G1;BX=0FF20H
MOV BX, 255 AND 0FH;BX=000FH
ADD AX, OFFSET F2;AX=1245H
MOV BX, F1;BX=2211H
4.以下程序的执行结果是_______。
ADB‘1234’
BDW5 DUP(2,3 DUP(0))
CDW‘AB’,’C’,’D’
L1:MOVAL,TYPE B
MOVBL,LENGTHB
MOVAH,SIZE A
MOVBH,SIZE C
MOVCL,TYPEL1
MOVCH,SIZEB
答案:AX=0102H,BX=0205HCX=0AFFH
微机原理第四章习题答案
1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。
其中寄存器寻址的指令执行速度最快。
2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=120 0H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?(1)MOV AX,[64H]答:寻址方式为直接寻址;PA=60064H(2)MOV AX,NUM 答:寻址方式为直接寻址;PA=60005H (3)MOV AX,[SI]答:寻址方式为寄存器间接寻址;PA=60100H(4)MOV AX,[BX]答:寻址方式为寄存器间接寻址;PA=60300H(5)MOV AX,[BP]答:寻址方式为寄存器间接寻址;PA=50400H(6)MOV AL,[DI]答:寻址方式为寄存器间接寻址;PA=61200H (7)MOV AL,[BX+1110H]答:寻址方式为寄存器相对寻址;PA=61410H(8)MOV AX,NUM[BX]答:寻址方式为寄存器相对寻址;PA=60305H(9)MOV AX,[BX+SI]答:寻址方式为基址变址寻址;PA=60400H (10)MOV AX,NUM[BX][DI]答:寻址方式为相对基址变址寻址;PA=61505H3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。
(1)直接寻址答:有效地址为EA=C237H(2)用BX的寄存器间接寻址答:有效地址为EA=637DH(3)用BX的相对寄存器间接寻址答:有效地址为EA=125B4H(4)基址加变址寻址答:有效地址为EA=8E18H(5)相对基址变址寻址答:有效地址为EA=1504FH其中,(3)和(5)中产生进位,要把最高位1舍去。
微机原理与接口技术(科学出版社)第4章课后习题及答案
微机原理与接口技术第四章课后习题1.指令主要有哪些分类方式? 其主要类别是什么?答:操作数、级别、功能。
操作数:无操作数、单操作数、双操作数三操作数;级别:机器指令和汇编指令功能:传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;2.80X86的寻址方式有哪些?它们的具体含义是什么?答:操作数寻址方式主要有立即寻址方式、寄存器寻地址、存储器寻址方式、端口寻址方式(1)立即寻址方式:操作对象是这个操作数本身(2)寄存器寻地址:操作对象是寄存器中的内容(3)存储器寻址方式:操作对象是内存地址所对应的存储单元中的内容(4)端口寻址方式:操作数是指明端口的地址、端口地址所对应的端口中的内容是操作对象3. 指出下列各指令中源操作数和目的操作数的寻址方式:⑴MOV BX,WORD PTR[2200H] ⑵ AAA⑶JUM 2200H ⑷ LES DI,[2100H]⑸ MOV [BX+SI+8], BX ⑹ ADD AX,[BP+3000H]答:⑴MOV BX, WORD PTR[2200H] 源操作数:直接寻址;目的操作数:寄存器寻址⑵AAA 源操作数:寄存器寻址AL(也称隐含寻址);目的操作数:寄存器寻址⑶JUM 2200H 程序转移段内直接寻址方式⑷LES DI,[2100H] 源操作数:直接寻址;目的操作数:寄存器寻址⑸MOV [BX+SI+8], BX 源操作数:寄存器寻址;目的操作数:相对基址变址寻址⑹ADD AX,[BP+3000H] 源操作数:直接寻址;目的操作数:寄存器相对寻址4. 设CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500 H,则:(1)10202H(2)40300H(3)21010H(4)42156H(5)31510H5.写出清除AX寄存器内容的方法并比较。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章课后作业(6—27)6.试按下列要求分别编制程序段。
(1)把标志寄存器中符号位SF置“1”。
(2)寄存器AL中高、低四位互换。
(3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。
(4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B) C。
(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。
答:(1) LAHFOR AH,80HSAHF(2) MOV CL,4ROL AL,CL(3) MOV CX,0NEG BXJC CHGJMP GOCHG: MOV CX,1GO: NEG AXSUB AX,CX(4) MOV CL,AMOV AL,BMOV X,ALCHECK:INC XDEC CLJNZ CHECK(5) OR CX,0001H7.试给出下列各指令的机器目标代码。
(1)MOV BL,12H [SI](2)MOV 12H [SI],BL(3)SAL DX,1(4)AND 0ABH [BP] [DI],1234H答:(1)100010 1 0 01 011 100 00010010=8A5C12H(2)100010 0 0 01 011 100 00010010=885C12H(3)110100 0 1 11 100 010=0D1E2H(4)100000 0 1 10 100 011 10101011 00000000 00110100 00010010=81A3AB003412H8.执行下列指令:STR1 DW ‘AB’STR2 DB 16DUP(?)CNT EQU $-STR1MOV CX,CNTMOV AX,STR1HLT执行完成之后,寄存器CL的值是多少?寄存器AX的值是多少?答:因为CNT=16+2=18,所以CX=18=0012H,所以CL=12H=0001,0010;AX中装入的是‘AB’的ASCII码值,其中‘A’在高位AH中,‘B’在低位AL 中,所以AX=4142H=0100,0001,0100,0010。
9.JMP FAR PTR ABCD (ABCD是符号地址)的转移方式是什么?答:段间直接转移。
10.按下列指令写出相应指令或程序段。
(1)写出两条使AX寄存器内容为0的指令。
(2)使BL寄存器中的高、低4位互换。
(3)现有两个带符号数分别在X1和X2变量中,求X1/X2,商和余数分别送入Y1和Y2中。
(4)屏蔽BX寄存器中的b4、b6、b11位。
(5)将AX寄存器的b4、b14位取反,其它位不变。
(6)测试DX寄存器的b0、b9位是否为“1”。
(7)使CX寄存器中的整数变为奇数(如原已经是奇数,则不变)。
答:(1)MOV AX,0 XOR AX,AX(2)MOV CL,4ROL BL,CL(3)MOV AX,X1CWDIDIV X2MOV Y1,AXMOV Y2,DX(4)AND BX,1111 O111 1O10 1111(5)XOR AX,0100 0000 0001 0000(6)MOV AX,DXRCR AX,1JC B0Y ;转向表示b0是1的标号为B0Y的程序段MOV AX,DXMOV CL,10ROR AX,CLJC B9Y ;转向表示b9是1的标号为B9Y的程序段(7)OR CX,0001H11.写出把首地址为BLOCK的字数组的第6个字送入AX寄存器的指令,要求使用下列寻址方式。
(1)寄存器间接寻址;(2)直接寻址;(3)基址寻址;(4)基址变址相对寻址。
答:(1)LEA DI,BLOCKADD DI,10MOV AX,[DI](2)MOV AX,[BLOCK+10](3)LEA BX,BLOCKADD BX,10MOV AX,[BX](4)LEA BX,BLOCKMOV SI,0MOV AX,[BX+SI+0AH]12. 指令“SUB AX,BX”执行后,CF=1,说明最高有效位发生了什么现象?对无符号数来说,操作结果发生了什么现象?答:CF=1说明最高有效位发生进位;对无符号数,操作结果产生溢出。
13. 在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中的偏移量分别为30H、6CH、0B8H,则转向地址LAB的值分别为多少?答:1000H*10H+2H+30H=10032H1000H*10H+2H+6CH=1006EH1000H*10H+2H+0B8H=100BAH14.(AL)=9AH,(BL)=0BCH,当分别进行下列指令运算后,写出标志位ZF、PF、CF、SF的内容。
(1)ADD AL,BL(2)SUB AL,BL(3)AND AL,BL(4)OR AL,BL(5)XOR AL,BL答:(AL)=9AH=1001 1010 ;(BL)=0BCH=1011 1100(1)1001,1010+1011,1100=1,0101,0110所以ZF=0,PF=1,CF=1,SF=0(2)1001,1010-1011,1100=1101,1110所以ZF=0,PF=1,CF=1,SF=1(3)1001,1010和1011,1100按位与得1001,1000所以ZF=0,PF=0,CF=0,SF=1(4)1001,1010和1011,1100 按位或得1011,1110所以ZF=0,PF=1,CF=0,SF=1(5)1001,1010和1011,1100按位异或得0010,0110所以ZF=0,PF=0,CF=0,SF=0(1)MOV DX,2[BX] ;DX=06H BX=0004H(2)PUSH CX ;SP=1FFEH [SP]=0FFH(3)MOV CX,BX ;CX=0004H BX=0004H(4)TEST AX,01 ;AX=8094H CF=0(5)MOV AL,[SI] ;AL=87H(6)ADC AL,[DI] ;AL=0CCH CF=0DAA ;AL=0011 0010(7)INC SI ;SI=0009H(8)DEC DI ;DI=0009H(9)MOV [DI],AL ;[DI]=94H DX=17C6H(10)XCHG AX,DX ;AX=17C6H DX=8094H(11)XOR AH,BL ;AH=84H BL=04H(12)JMP DX ;IP=17C6H16.如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H。
当执行指令“MOV AX,TABLE”和“LEA AX,TABLE”后,(AX)中的内容分别为多少?答:执行“MOV AX,TABLE”后(AX)=1234H;执行“LEA AX,TABLE”后(AX)=0032H。
17.设(SP)=0FFFEH,执行CALL FAR PTR OPRD后,(SP)=?答:(SP)=SP-04H=0FFFAH18.若某数据区的开始地址为A7F0H:2B40H,则该数据区的首字单元和32个字的末字单元的物理地址分别为多少?答:首字单元物理地址为:AAA40H、AAA41H;32字的末字单元物理地址为:AAAA2H、AAAA3H。
19、若(SP)=2000H,(AX)=3355H,(BX)=4466H,下列程序段:PUSH AXPUSH BXPOP DX执行后有关寄存器内容为(AX)=?,(DX)=?,(SP)=?。
答:(AX)=3355H (DX)=4466H (SP)=1FFEH20.设(SS)=2250H,(SP)=0140H,若在堆栈中存入5个数据,则栈顶的物理地址是多少?如果再从堆栈中取出3个数据,则栈顶的物理地址是多少?答:存入五个数据后,栈顶的物理地址为:22636H;再取出三个数据后,栈顶的物理地址为:2263CH。
21.分别指出下列两个程序段的功能。
(1)MOV CX,10 (2)CLDLEA SI,FIRST LEA DI,[0404H]LEA DI,SECOND MOV CX,0080H REP MOVSB XOR AX,AXREP STOSW答:(1)将数据段中首地址为FIRST的10个字节数据传送到附加段首地址为SECOND的内存区中。
(2)将附加段从偏移地址地址为0404H开始向后的128个字存储单元清零。
22.若(SP)=2800H,使用两种方法实现(SP)=27FEH。
答:(1)MOV AX,1234HPUSH AX(2)MOV AX,1234HCALL AX23.设(IP)=3D8FH,(CS)=4050H,(SP)=0F17CH。
当执行完CALL 2000:009AH 后,IP、CS、SP、[SP]、[SP+1]、[SP+2]和[SP+3]的内容分别为什么?答:IP=009AH,CS=2000H,SP=0F178H,[SP]=8FH,[SP+1]=3DH,[SP+2]=50H,[SP+3]= 40H24.(1)试编写汇编程序段完成以下功能:将数据段中100个字符的字符串从内存的BUFFER1搬移到内存的BUFFER2中去;(2)试编写汇编程序段完成以下功能:将数据段中100个字的数据块BLOCK1搬移到同一个数据段的BLOCK2中去。
答:(1)LEA SI,BUFFER1LEA DI,BUFFER2MOV CX,100CLDREP MOVSB(2)LEA SI,BLOCK1LEA DI,BLOCK2MOV CX,100CLDREP MOVSW25. 试编写汇编程序段完成以下功能:比较DEST和SOURCE中的500个字节,找出第一个不相同的字节,如果找到,则将SOURCE中的这个数送AL中。
答: LEA SI,DESTLEA DI,SOURCEMOV CX,500CLDREPE CMPSBJCXZ NODEC DIMOV AL,BYTE PTR [DI]NO: HLT26. 试编写汇编程序段完成以下功能:求最大值,若自BLOCK开始的内存缓冲区中,有100个带符号的数,希望找到其中最大的一个值,并将它放到MAX单元中。
答: LEA DI,BLOCKMOV CX,100MOV AX,[DI]CHECK: ADD DI,2CMP AX,[DI]JGE NEXTMOV AX,[DI]NEXT: LOOP CHECKMOV MAX,AX27.指出下列32位指令源操作数的寻址方式,并指出指令执行后有关寄存器的内容。
(1)LEA ECX ,[EAX*2+14CH] ;执行前:(EAX)=0548 901AH(ECX)=xxxx xxxxH(2)LEA EAX ,TAB[EDX][4*ESI] ;执行前:(EAX)=xxxx xxxxH(ESI)=0653 3A44H(EDX)=0892 ABDFH[TAB] =0000 0120H(3)MOV EAX,mem32 ;执行前:(EAX)=xxxx xxxxH[men32]=0892 ABDFH(4)PUSH 12345678H ;执行前:(ESP)=1234 5678HSS:[FFFF F31CH]=xxxx xxxxH 答:(1)寄存器相对寻址。