《微机原理》习题参考答案4章

合集下载

微机原理作业与答案第四章

微机原理作业与答案第四章

微机原理作业与答案第四章第四章汇编语⾔程序设计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单元。

微机原理作业与答案第四章1

微机原理作业与答案第四章1

第四章汇编语言程序设计4-2下列程序执行后,寄存器AX BX CX的内容分别是多少?D SEGMENAT 0202H;定位数据段地址ORG 0202H ;定位偏移地址DA_WORD DW 20HMOV AX,DA_WORD ;(AX)=0020HMOV BX,OFFSET DA_WORD ;(BX)=0202HMOV CL,BYTE PTR DA_WORD ;(CL)=20H将变量DA_WOR的属性改变为字节型) MOVCH,TYPE DA_WORD ;(CH)=2( 变量类型数值);( CX)=0220H4-4试编制一程序,把CHAR中各小写字母分别转换为对应的大写字母,并存放在CHAR 开始的单元中(题目要求:不改变CHAR的内容)方法1,小写字母转换一个输出显示一个,前3种方法均使用了AL寄存器D SEGMENTCHAR1 DB "abcdefghijklmnopqrstuvwxyz"N EQU $-CHAR1 ; 变量必须先定义后使用,而不能相反CHAR2 DB N DUP(0);; 不能把此句与上一句对调,CHAR2 DB $-CHAR t ; 的同学这样写,错在哪?CHAR2DB$-CHAR1DUP(0) 是可以的D ENDSS SEGMENT STACKDB 200 DUP(0)S ENDSC SEGMENTASSUME CS:C,DS:D,SS:S ;ASSUM是伪指令,后面不能写冒号START: MOV AX,DMOV DS,AX;MOV ES,AX ; 只要用到串操作指令且DILEA SI,CHAR1 ;MOV SI,OFFSET CHAR1LEA DI,CHAR2 ; MOV DI,OFFSET CHAR2 MOV CXN, ;$-CHAR1, 不可以AGAIN:MOV AL,[SI]SUB AL,20H ; AND AL,5FH 有的同学是这样实现的MOV [DI],ALMOV DL,ALMOV AH,2INT 21H ; 从屏幕显示INC SIINC DILOOP AGAINMOV AH,4CHINT 21H ; ; 不是必须的C ENDSEND START方法2:使用通用数据传送指令MOVD SEGMENTCHAR1 DB ‘abcdefghijklmnopqrstuvwxyz 'N EQU $-CHAR1 ; 变量必须先定义后使用, 而不能相反CHAR2 DB N DUP(0); 不能把此句与上一句对调D ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDS ;P126( 代码段和堆栈段是不可少的) C SEGMENTASSUME CS:C ,DS:D ,SS:SSTART: MOV AX,DMOV DS,AXMOV ES,AX ; 只要用到串操作指令且DIMOV 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],ALINC SIINC DILOOP AGAINMOV AH,4CHINT 21H ; 不是必须的C ENDSEND START第3 种方法: 使用串的读写指令LODSB STOSB D SEGMENTCHAR1 DB ‘abcdef 'N EQU $-CHAR1CHAR2 DB $-CHAR1 DUP(0)D ENDSSTACK SEGMENT STACKDB 200 DUP(0)STACK ENDS ;P126( 代码段和堆栈段是不可少的) C SEGMENTASSUME CS:C,DS:D,SS:SSTART: MOV AX,DMOV DS,AXMOV ES,AXMOV SI,0 ;LEA SI,CHAR1MOV DI,0 ;LEA DI,CHAR2MOV CX,NCLD ; 不写( 隐含)也是0(递增)但不能STD AGAIN: LODSB ;执行一次, 隐含修改SISUB AL,32STOSB ;MOV [DI],AL ; 执行一次, 隐含修改DI INC DILOOP AGAIN ;LOOP指令只修改ex,不管SI,DIMOV AH,4CH iNT 21H ; 不是必须的e ENDsEND sTART 第四种方法2006级,没有显示使用MOVS指令D sEGMENTeHAR1 DB "abcdefghijklmnopqrstuvwxyz"N EQU $-eHAR1 eHAR2 DB N DUP(0) D ENDSS SEGMENT STAeK DB 200 DUP(0)S ENDS e SEGMENTASSUME eS:e,DS:D,SS:SSTART:MOV Ax,DMOV DS,AxMOV ES,AxLEA Si,eHAR1LEA Di,eHAR2MOV ex,NAGAiN:MOVSB ; SUB [Si],20HDEe Di ; MOVSBSUB BYTEPTR[Di],20H ;LOOP AGAiN 错在哪里?结果如何?iNeDiLOOP AGAiNMOV AH,4eH iNT 21H e ENDSEND START 方法5: 只用一个地址指针SiD SEGMENTeHAR1 DB "abcdefghijklmnopqrstuvwxyz"N EQU $-eHAR1 eHAR2 DB N DUP(0) D ENDSS SEGMENT STAeKDB 200 DUP(0)S ENDS e SEGMENTASSUME CS:C,DS:D,SS:SSTART:MOV AX,DMOV DS,AXMOV ES,AXMOV SI,0MOV CX,NAGAINMOV AL,CHAR1[SI];只用一个地址指针,SI[CHAR1]是错误的SUB AL,20HMOV CHAR2[SI],ALINC SILOOP AGAINint 3MOV AH,4CHINT 21HC ENDSEND START有的同学按数据是由键盘录入的来考虑的,也可行,程序中还有不少问题方法6:由键盘输入小写字母再转换输出, 回车符也占一个字节,输入需要小写转换成大写字母的内容从输入串的第3 个元素开始D SEGMENTA DB"CHAR1",0DH,0AH,"$"B DB"CHAR2",0DH,0AH,"$"CHAR1 DB 11,?,11 DUP(0); 准备输入1 0个小写字母CHAR2 DB 10 DUP(0)D ENDSS SEGMENT STACKDB 200 DUP(0)S ENDSC SEGMENTASSUME CS:C,DS:D,SS:SSTART:MOV AX,DMOV DS,AXMOV ES,AXMOV DX,OFFSET AMOV AH,9INT 21HLEA DX,CHAR1MOV AH,0AHINT 21H ; 由键盘输入字符串,1 0个字母(显示) , 1 个回车,共11 个字节LEA SI,CHAR1[2]LEA DI,CHAR2MOV CX,10 ; 需要转换的字符长度为10 个字节AGAIN:MOV AL,[SI]SUB AL,20HMOV [DI],ALINC SIINC DILOOP AGAIN ; 将小写字母字符串转换成大写字母字符串MOV BYTE PTR[DI],0DHINC DIMOV BYTE PTR[DI],0AHINC DIMOV BYTE PTR[DI],'$' ; 必须指明数据类型MOV DX,OFFSET CHAR2MOV AH,9INT 21H ; 输出'$' 结尾的大写字母字符串int 3MOV AH,4CHINT 21HC ENDS END START4-6在BUF地址处起,存放有100个字节的字符串,设其中有一个以上的“ A字符,编程查找出第一个“ A”字符相对起始地址的距离,并将其存入LEN单元。

微机原理第四章课后习题答案

微机原理第四章课后习题答案

第四章课后作业(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。

电子科大-微机原理习题解答-chap4

电子科大-微机原理习题解答-chap4

Chapter44.1 阐述总线的概念。

计算机系统为什么需要采用总线结构?总线是计算机系统中的信息传输通道,由系统中各个部件所共享。

总线的特点在于公用性,总线由多条通信线路(线缆)组成采用总线结构,能:减少部件间连线的数量;扩展性好,便于构建系统;便于产品更新换代4.3 微机系统中总线层次化结构是怎样的?按总线所处位置可分为:片内总线、系统内总线、系统外总线。

按总线功能可分为:地址总线、数据总线、控制总线。

按时序控制方式可分为:同步总线、异步总线。

按数据格式可分为:并行总线、串行总线。

4.4 评价一种总线的性能有那几个方面?总线时钟频率、总线宽度、总线速率、总线带宽、总线的同步方式和总线的驱动能力等。

4.5 微机系统什么情况下需要总线仲裁?总线仲裁有哪几种?各有什么特点?总线仲裁又称总线判决,其目的是合理的控制和管理系统中多个主设备的总线请求,以避免总线冲突。

当多个主设备同时提出总线请求时,仲裁机构按照一定的优先算法来确定由谁获得对总线的使用权。

集中式(主从式)控制和分布式(对等式)控制。

集中式特点:采用专门的总线控制器或仲裁器分配总线时间,总线协议简单有效,总体系统性能较低。

分布式特点:总线控制逻辑分散在连接与总线的各个模块或设备中,协议复杂成本高,系统性能较高。

4.6总线传输方式有哪几种?同步总线传输对收发模块有什么要求?什么情况下应该采用异步传输方式,为什么?总线传输方式按照不同角度可分为同步和异步传输,串行和并行传输,单步和突发方式。

同步总线传输时,总线上收模块与发模块严格按系统时钟来统一定时收发模块之间的传输操作。

异步总线常用于各模块间数据传送时间差异较大的系统,因为这时很难同步,采用异步方式没有固定的时钟周期,其时间可根据需要可长可短。

4.7 AMBA总线定义了哪三种总线?他们各有什么特点?先进高性能总线AHB,先进系统总线ASB,先进外设总线APBAHB适用于高性能和高吞吐设备之间的连接,如CPU、片上存储器、DMA设备、DSP等。

微机原理 第4章作业答案

微机原理 第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

微机原理习题解答:4

微机原理习题解答:4习题四1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。

其中寄存器寻址的指令执行速度最快。

2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=1200H,数据段中变量名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章练习题及答案

微机原理第4章练习题及答案

微机原理第4章练习题及答案第4章 80x86指令系统一、自测练习题㈠选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI)2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。

A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI) C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI) 3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI) C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI)4.JMP WORD PTR[DI]是( )。

A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。

A.段内间接转移B.段间间接转移C..段内直接转移D.段间直接转移6.INC指令不影响( )标志。

A.OF B.CF C.SF D.ZF 7.条件转移指令JNE的测试条件是( )。

A.ZF=1 B.CF=0 C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。

A.MOV [SI],[DI] B.IN AL,DX C.JMP WORD PTR[BX+8] D.PUSH WORD PTR 20[BX+S1] 9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是。

A.20102H B.20101H C.200FEH D.200FFH 10.对于下列程序段:AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用指令完成同样的功能。

微机原理 第四章答案

微机原理 第四章答案
14、设(BX)=0400H,(DI)=003CH,执行 LEA BX,[BX+DI+0F62H]后,(BX)=? (BX)=139E H
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

微机原理习题集(4章)

微机原理习题集(4章)

一.单项选择题:1、在汇编语言程序设计中,变量定义时,以下为非法的类型属性是__C__;A 字节B 字C 字符D 双字2、以下哪个元素是汇编语言中语句的必要组成部分_B___;A 标号B 操作助记符C 操作数D 注释3、下列指令错误的是__B__;A INC WORD PTR [SI]B PUSH ALC POP CXD JMP BX4、下面说法正确的是_D___;A 低级语言更接近于自然语言。

B 机器语言编写的程序可以应用于不同微处理器的计算机系统。

C 高级语言编写的程序依赖于微处理器的型号。

D 程序在准备执行时,必须存储于存储器中。

5、以下指令错误的是_D___;A MOV AX,2000HB MOV [BP],DLC MOV DS,AXD MOV 20H,AL6、下面叙述错误的是_C___;A 宏指令是用户自己定义的B 注释是以分号开头的。

C 名称在语句中是必须的D 每条语句都必须有操作助记符。

7、条件转移指令“JS”的转移条件是_B___;A SF=0B SF=1C CF=0D CF=18、在微计算机中用来存放源字符串地址的偏移量的寄存器是_C___;A SPB BPC SID DI9、汇编程序是一个__B__;A 源程序B 语言加工程序C 连接程序D 目标程序10、下列字符串能用于标识符的是_B___;A LENGTHB MOVEC 13AD SEGMENT11、若要对操作数清0,一般对操作数进行__C__运算。

A 相与B 相或C 异或D 移位12、汇编语言编辑程序输出的文件类型是_A___;A .asmB .obj C.exe D .c13、堆栈的存取规则正确的是_D___;14、 A FIFO B FILO CLILO D以上都不对14、以下指令不是逻辑运算指令的是__D__;A XOR AL,3B NOT ALC OR AL,3D CWD15、在指令“MOV AX,INBUFF”中,变量INBUFF 的段是_B___ ;A CSB DSC SSD ES16、若READY为低电平,此时CPU执行___B_周期;A T3 B TWC T4D T117、连接程序输出的文件类型是_C___;A .asmB .obj C.exe D .c18、已知程序段:_A_MOV AX,0FF60HSTCMOV DX,96XOR DX,0FF00HSBB AX,DX程序执行后AX=____,CF=____。

《微机原理》参考答案

《微机原理》参考答案

第一章到第四章作业答案第一章(Page19)10(3) 解二进制=10010.1011 1100十六进制=12.BC12解(1)BC.DH=1011 1100.1101 B=274.64D=188.8125O(2)20.BH=0010 0000.1011B=40.54D=32.6875O(3)6C.6H=0110 1100.0110B=154.3D=108.375O16.解[48]原、反、补=0011 0000[-98]原=1110 0010[-98]反=1001 1101[-98]补=1001 111019.解[3728]压缩BCD = 0011 0111 0010 1000[3728]非压缩BCD =00000011 00000111 00000010 00001000[315]压缩BCD =0011 0001 0101[315]非压缩BCD =00000011 00000001 00000101[1124]压缩BCD =0001 0001 0010 0100[1124]非压缩BCD=00000001 00000001 00000010 0000010020.解(1)31H=49=3439H(ASCII码)(2)A4H=164=313634 H(ASCII码)(3)3DH=61=3631 H(ASCII码)(4)OK=4F4B H(ASCII码)第二章(P44)6答:CF、PF、AF、ZF、SF、OFCF(Carry Flag)——进位标志位。

当执行一个加法(或减法)运算,使最高位产生进位(或借位)时,CF为1;否则为0。

PF(Parity Flag)——奇偶标志位。

该标志位反映运算结果中1的个数是偶数还是奇数。

当指令执行结果的低8位中含有偶数个1时,PF=1;否则PF=0。

AF(Auxiliary carry Flag)——辅助进位标志位。

当执行一个加法(或减法)运算,使结果的低4位向高4位有进位(或借位)时,AF=1;否则AF=0。

微机原理第四章习题答案

微机原理第四章习题答案

微机原理课后习题解第四章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单元中。

微机原理第4章练习题及答案

微机原理第4章练习题及答案

第4章 80x86指令系统一、自测练习题㈠选择题1.MOV AX,[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI)C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI) 2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。

A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI)C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI) 3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。

A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI)C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI)4.JMP WORD PTR[DI]是( )。

A.段内间接转移B.段间间接转移C.段内直接转移D.段间直接转移5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。

A.段内间接转移B.段间间接转移C..段内直接转移D.段间直接转移6.INC指令不影响( )标志。

A.OF B.CF C.SF D.ZF7.条件转移指令JNE的测试条件是( )。

A.ZF=1 B.CF=0 C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。

A.MOV [SI],[DI] B.IN AL,DXC.JMP WORD PTR[BX+8] D.PUSH WORD PTR 20[BX+S1] 9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是()。

A.20102H B.20101H C.200FEH D.200FFH 10.对于下列程序段:AGAIN:MOV AL,[SI]MOV ES:[DI],ALINC SIINC DILOOP AGAIN也可用指令()完成同样的功能。

微机原理习题解答1-4章

微机原理习题解答1-4章
×× 12341H
41H 12340H 42H 12341H 24H 12342H 30H 12343H 39H 12344H
30H 12340H 21H 12341H
×× 12342H ×× 12343H
78H 12340H 56H 12341H 34H 12342H 12H 12343H ×× 12344H
(2)ADD AL,DH
(3)ADC BX,CX
;AL=66H,CF=0、ZF=0、OF=0。
;BX=083EH,CF=0,ZF=0,OF=0。
(4)SUB AX,2710H;AX=1B25H,CF=0,ZF=0,OF=0。
(5)DEC BX
3-12 (1)AND AH,CL (2)OR BL,30H (3)NOT AX
2013年10月
西南交通大学电气工程学院
4
习题解答
1-9(3)[50+84]补=[50]补+[84]补=00110010B+01010100B =10000110B 0 0 1 1 0 0 1 0 + ) 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 0
CsCp=01,正溢出。
(4)[72-8]补=[72]补+[-8]补=01001000B+11111000B
+1111111B 01111111B 01111111B 01111111B
+1000000B 01000000B 01000000B 01000000B
-0010101B 10010101B 11101010B 11101011B -1111111B 11111111B 10000000B 10000001B
目的操作数 寄存器寻址 寄存器寻址 寄存器寻址 基址寻址 寄存器寻址

微机原理与接口技术 第四章 课后答案

微机原理与接口技术 第四章 课后答案

第四章参考答案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章习题与答案

微机原理第4章习题与答案
(2)PRGM SEG
……
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

微机原理第四章练习题及解答

微机原理第四章练习题及解答

微机原理第四章练习题及解一:单项选择题●汇编源程序文件的扩展名是( C )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●源程序文件汇编后的目标文件的扩展名是( B )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●目标文件连接后的可执行文件的扩展名是( D )。

A:*.LST B:*.OBJ C:*.ASM D:*.EXE●下列可作为标识符用的字符串是( C )。

A:MOV B:ZF C:FAH D:PTR●下列为寄存器名的字符串是( B )。

A:ZP B:BP C:AP D:CP●下列为状态标志的字符串是( A )。

A:ZP B:BF C:DF D:TF●下列为控标志的字符串是( D )。

A:ZP B:SF C:OF D:TF●下列为指令助记符的字符串是( C )。

A:ADCC B:AAAA C:SUB D:POOP●下列为运算符的字符串是( B )。

A:ADC B:PTR C:OAG D:LOOP●定义字类型的伪指令符是( B )。

A:DB B:DW C:DD D:DQ●说明字节类型的伪指令符是( C )。

A:WORD B:DWORD C:BYTE D:SHOR●返回变量段属性的伪指令符是( B )。

A:OFFSET B:SEG C:TYPE D:SIZE●定义过程结束的伪指令符是( C )。

A:END B:ENDS C:ENDP D:ENDM●下列为段定义的伪指令是( B )。

A:PROC B:SEGMENT C:ASSUME D:STRUC●下列为符号定义的伪指令是( B )。

A:ORG B:EQU C:STR D:RET二:填空题●将指令助记符翻译为指令机器码的过程称为(汇编)。

●汇编程序的功能是输入扩展名为ASM的(汇编源程序)文件,输出扩展名为OBJ的(目标代码)文件和扩展名为LST的(列表)文件。

●汇编源程序中的保留字类型有(寄存器名)、(标志名)、(指令助记符)、(伪指令符)和(运算符)。

微机原理与接口技术(科学出版社)第4章课后习题及答案

微机原理与接口技术(科学出版社)第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寄存器内容的方法并比较。

微机原理陈慈发版习题答案04

微机原理陈慈发版习题答案04

地址
数据 42H 41H 44H 43H ? ? 01H 00H 03H 00H 01H 00H 03H 00H
则执行指令 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=?
解: MOV AAA
LOP: MOV AH,01H INT 21H MOV AH,BH ADD AL,BL
MOV BX,AX CX, 10
;键盘字符输入
4. 11. 下面程序段的功能是把 DA1 数据区的数 0~9 转换为对应的 ASCII 码。
试完善本程序段。
DA1
DB
OOH,O1H,02H,03H,04H,05H,06H,07H,08H,09H
00H
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第4章 AT89C51单片机汇编语言程序设计
1.已知程序执行前有A = 02H,SP = 42H,(41H) = FFH,(42H) = FFH。

下述程序执行后,A = ;SP = ;(41H) = ;(42H) = ;PC = 。

POP DPH
POP DPL
MOV DPTR,#3000H
RL A
MOV B,A
MOVC A,@A+DPTR
PUSH Acc
MOV A,B
INC A
MOVC A,@A+DPTR
PUSH Acc
RET
ORG 3000H
DB 10H,80H,30H,80H,50H,80H
答:A=80H,SP=40H,(51H)=50H,(52H)=80H ,PC=8050H。

2.说明伪指令的作用。

“伪”的含义是什么?常用伪指令的功能如何?
答:伪指令不属于指令系统中的汇编语言指令,它是程序员发给汇编程序的
控制命令。

只有在汇编前的源程序中才有伪指令。

所以“伪”体现在汇编后,
伪指令没有相应的机器代码产生。

3.解释手工汇编、机器汇编、交叉汇编、反汇编术语概念。

答:(1)手工汇编:手工编程,首先把程序用助记符指令写出,然后通过查
指令的机器代码表,逐个把助记符指令“翻译”成机器代码,这种人工查表
“翻译”指令的方法称为手工汇编。

(2)机器汇编:是借助于微型计算机上的软件(汇编程序)来代替手工汇编,
完成把助记符指令“翻译”成机器代码的工作。

(3)交叉汇编:使用微型计算机来完成汇编,而汇编后得到的机器代码却是
在另一台计算机(这里是单片机)上运行,称这种机器汇编为交叉汇编。

(4)反汇编:将二进制的机器代码语言程序翻译成汇编语言源程序的过程。

4.下列程序段经汇编后,从1000H开始的各有关存储单元的内容是什么?ORG 1000H
TAB1 EQU 1234H
TAB2 EQU 3000H
DB "MAIN"
DW TAB1,TAB2,70H
答:4D 41 49 4E 12 34 30 00 00 70
5.设计子程序时应注意哪些问题?
答:在编写子程序时应注意以下问题。

(1)子程序的第一条指令前必须有标号。

(2)使用子程序调用指令时,有两条调用指令可供使用。

①使用绝对调用指令(ACALL addr11)要注意,被调用的子程序的首地
址与本绝对调用指令的下一条指令的高5位地址相同,即只能在同一2KB程
序存储区内。

②使用长调用指令(LCALL addr16)时,addr16为直接调用的子程序的
目标地址,也就是说,被调用的子程序可放置在64KB程序存储器区的任意
位置。

(3)子程序结构中必须用到堆栈,堆栈通常用来保护断点和现场保护。

(4)子程序返回主程序时,最后一条指令必须是RET指令。

(5)子程序可以嵌套,即主程序可以调用子程序,子程序又可以调用另外的
子程序。

6.试编写一个程序,将内部RAM中45H单元的高4位清“0”,低4位置“1”。

答:参考程序如下:
MOV A,45H
ANL A,#0FH
ORL A,#0FH
MOV 45H,A
7.试编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据。

若有,则将51H单元置为“01H”;若未找到,则将51H单元置为“00H”。

答:参考程序如下:
START: MOV R0,#30H
MOV R2,#20H
LOOP: MOV A,@R0
CJNE A,#0AAH,NEXT
MOV 51H,#01H
LJMP EXIT
NEXT: INC R0
DJNZ R2,LOOP
MOV 51H,#00H
EXIT: RET
8.试编写程序,查找在内部RAM的20H~40H单元中出现“00H”这一数据的次数,并将查找到的结果存入41H单元。

答:参考程序如下:
START: MOV 41H,#0
MOV R0,#20H
MOV R2,#20H
LOOP: MOV A,@R0
JNZ NEXT
INC 41H
NEXT: INC R0
DJNZ R2,LOOP
RET
9.在内部RAM的21H单元开始存有一组单字节无符号数,数据长度为20H,编写程序,要求找出最大数存入MAX单元。

答:略:
10.若SP = 60H,标号LABEL所在的地址为3456H。

LCALL指令的地址为2000H,执行如下指令
2000H LCALL LABEL
后,堆栈指针SP和堆栈内容发生了哪些变化?PC的值等于什么?如果将指令LCALL直接换成ACALL是否可以?如果换成ACALL指令,可调用的地址范围是什么?
答: (1)SP=SP+1=61H (61H)=PC的低字节=03H
SP=SP+1=62H (62H)=PC的高字节=20H
(2)PC=3456H
(3)可以
(4)2KB=2048 Byte。

相关文档
最新文档