微机原理 第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单元。
微机原理第四章作业2

微机原理第四章作业2第四章作业21、解释六个周期。
答:⑴指令周期CPU每取出并执行一条指令所需的全部时间时间称为指令周期,也即CPU完成一条指令的时间。
⑵总线周期总线周期是指CPU与存储器或外设进行一次数据传送所需要的时间。
⑶机器周期在微机领域中,称“机器周期”为“总线周期”——BIU完成一次访问存储器操作所需要的时间。
⑷时钟周期(T):又称为T状态,是一个时钟脉冲的重复周期,是CPU处理动作的基本时间单位。
⑸空闲周期(Ti)是指在两个总线周期之间的时间间隔(总线处在空闲状态)。
⑹等待周期(TW)如果内存或IO接口速度较慢,来不及响应,则需在一个总线周期的T3和T4之间,CPU根据Ready信号来确定是否插入TW,插入几个TW。
2、解释分时复用技术,举例分时复用引脚。
答:⑴分时复用技术分时复用就是一个引脚在不同的时刻具有两个甚至多个作用。
⑵分时复用引脚举例①8086的地址/数据分时复用引脚AD15~AD(Address / Data)在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的低16位地址A15~A。
其他时间用于传送16位数据D15~D。
②8086的地址/状态分时复用引脚A19/S6~A16/S3(Address / Status)采用分时输出,即在T1状态作地址线用,T2 T4状态输出状态信息。
当访问存储器时,T1状态输出A19~A16,与A15~A一起构成访问存储器的20位物理地址。
CPU访问I/O端口时,不使用这4个引脚,A19~A16保持为0。
③8086的BHE/S7(Bus High Enable / Status):引脚34,高8位数据总线允许/状态分时复用引脚BHE信号在总线周期的T1状态时输出,当该引脚输出为低电平时,表示高位地址/数据线AD15~AD8上的高8位数据有效。
在T2、T3、T4及TW状态,该引脚输出状态信号S7。
3、Pentium的三种主要工作方式及其特点。
微机原理第四章课后习题答案

第四章课后作业(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。
《微机原理》第04章 习题

习题1 习题
1.编写 编写8086汇编语言程序 , 将寄存器 的高 位传 汇编语言程序, 的高8位传 编写 汇编语言程序 将寄存器AX的高 送到寄存器BL, 位传送到寄存器DL 送到寄存器 ,低8位传送到寄存器 位传送到寄存器
习题2 习题
2.将寄存器 的内容从低到高位的顺序分成 组 , 将寄存器DX的内容从低到高位的顺序分成 将寄存器 的内容从低到高位的顺序分成4组 并将各组数分别送到寄存器AL,BL,CL和 DL( 如 并将各组数分别送到寄存器 和 ( DX=6D82H,分成:06H、0DH、08H、02H)。 ,分成: 、 、 、 )
MOV AX,MEN MOV BX,AX SHR AX,1 JC PO_1 MOV MEMB,BX JMP DONE PO_1: MOV MEMA,BX : DONE:
习题4 习题
4.试统计 个数中偶数的个数,并将结果在屏幕显示 试统计9个数中偶数的个数 试统计 个数中偶数的个数,
SI BUFF 3BH 47H 8DH -75 0A4H 69H -2EH 0CCH 200 0000H 0001H 0002H 0003H 0004H 0005H 0006H 0007H 0008H
逻辑左移
CF
0 1 XXX XXXX 0 XXX XXXX
SHL AL,1 ADC DL,0
ADC指令实现 指令实现DL+CF+0 指令实现 如果是负数, 为 , 个数记录加1 如果是负数,CF为1,则DL个数记录加 个数记录加
DATA SEGMENT BUFF DW 6700H,9E00H,-6A00H,0A0BH,6D00H NUM DB $-BUFF MEM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA , START:MOV AX,DATA MOV DS,AX MOV CX,NUM LEA BX,BUFF
微机原理第四章习题及答案

第四章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 )。
微机原理第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 也可用指令完成同样的功能。
微机原理第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 也可用指令完成同样的功能。
微机原理作业第4章

1.程序设计语言:机器语言、汇编语言、高级语言。
汇编语句:①指令性语句——采用指令助记符构成的汇编语言语句,符合汇编语言的语法规则;②指示性语句——不是真正的指令,而是一种假指令。
3.定义汇编的开始和终止:ORG/END定义字符名称:EQU/DA TA定义字节/字/存储空间:DB/DW/DS定义位地址:BIT5.第二次扫描完成对地址偏移量的计算。
0100HMOV A,#00HMOV R0,#20HXCHD A,@R0MOV B,AMOV A,@R0SW AP AMUL ABMOV B,#0AHDIV ABSW AP AORL A,BMOV 21H,ASJMP $END 0200HV AR DATA 20HFUNC DATA 21HMOV A,V ARCJNE A,#50,NEXT1NEXT1:JNC DONECJNE A,#20,NEXT2NEXT2:JC NEXT3RL ARL AADD A,20HSJMP DONENEXT3:RL ADONE:MOV FUNC,ASJMP $END 0500HSOUCE DATA 30HDIST DATA 30HMOV R0,#SOUCEMOV R1,#DIST LOOP:MOVX A,#R0CJNE A,#24H,NEXTMOV @R1,ASJMP $NEXT:MOV @R1,AINC R0INC R1SJMP LOOPEND13. ORG 0500HLEN DATA 40HSOUCE DATA 41HDIST DATA 20HMOV R1,#DISTMOV R0,@LENMOVX A,@R0MOV R2,AMOV R0,#SOUCE LOOP:MOVX A,@R0JNB PSW.0,NEXTMOV @R1,AINC R1NEXT:INC R0DJNZ R2,LOOPSJMP $END 0500HMOV DPTR,#3000HPUSH DPLPUSH DPHMOV DPTR,#2000HMOV R2,#01HMOV R3,#01HMOVX A,@DPTRINC DPTRMOV R5,DPHMOV R4,DPLPOP DPHPOP DPLMOVX @DPTR,AINC DPTRPUSH DPLPUSH DPHMOV DPH,R5MOV DPL,R4CLR CMOV A,R2SUBB A,#01HMOV R2,AMOV A,R3SUBB A,#00HMOV R3,AORL A,R2JNZ LOOPSJMP $END 0800HMIN DATA 20HBLOCK DATA 21HMOV R0,#BLOCKMOV R2,#100MOV MIN,#0FFHLOOP:MOV A,@R0CJNE A,MIN,NEXT1 NEXT1:JNC NEXT2MOV MIN,ANEXT2:INC R0DJNZ R2,LOOPSJMP $END 0A00HLEN DATA 20HBLOCK DATA 21HMOV R0,#BLOCKLOOP:MOV A,@R0CLR CSUBB A,#0AHJNC NEXT1MOV @R0,#00HSJMP NEXT2NEXT1:ADD A,#07HMOVC A,@A+PCMOV @R0,ANEXT2:INC R0DJNZ LEN,LOOPSJMP $DB 41H,42H,43H,44H,45H,46HEND21. ORG 0B00HMOV R0,#BLOCKMOV A,#00HMOV R2,#01HMOV SUM+1,#00HLOOP:ADD A,@R0DA AMOV SUM,AJNC NEXTMOV A,SUM+1ADDC A,#00HDA AMOV SUM+1,AMOV A,SUMNEXT:INC R0DJNZ R2,LOOPSJMP $END 0C00HMDA DATA 20HMDB DATA 21HMDC DATA 22HMOV MDC+1,#00HMOV A,MDAACALL SQRMOV MDC,AMOV A,MDBACALL SQRADD A,MDCMOV MDC,AMOV A,MDAMOV B,MDBRL AMUL ABADD A,MDCMOV MDC,AJNC NEXTINC MDC+1NEXT:SJMP $END 0D00HDELAY:MOV R7,#49 1 DELAY2:MOV R6,#64H 1 DELAY1:DJNZ R6.DELAY1 2 NOP 1DJNZ R7.DELAY2 2NOP 1RET 1 27.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章习题与思考题
1、编写8086汇编语言程序,将寄存器AX的高8位传送到寄存器BL,AX的
低8位传送到寄存器DL。
答:CODE SEGMENT
ASSUME CS:CODE
START:MOV BL,AH
MOV DL,AL
CODE ENDS
END START
2、将DX寄存器的内容从低位到高位的顺序分成4组,且将各组数分别送到寄
存器AL、BL、CL和DL。
答:MOV AH,DL ;取DL 低4位送AL
AND AH,0FH
MOV AL,AH
SHR DL,1 ;DL高4位逻辑右移4位送BL
SHR DL,1
SHR DL,1
SHR DL,1
MOV BL,DL
MOV AH,DH ;取DH 低4位送CL
AND AH,0FH
MOV CL,AH
SHR DH,1 ;DH高4位逻辑右移4位送DL
SHR DH,1
SHR DH,1
SHR DH,1
MOV DL,DH
HLT
3、判别MEM单元的数据,编程将奇数存入MEMA单元,将偶数存入MEMB
单元。
答:MOV AL,MEM
TEST AL,00000001B
JZ OS ;偶数转OS
MOV MEMA,AL
HLT
OS:MOV MEMB,AL
HLT
4、试统计9个数中偶数的个数,并将结果在屏幕上显示。
答:
DATA SEGMENT
MESS1 DB “THE NUMBER OF EVEN NUMBERS:$”
MEM DB 9 DUP(?);统计对象共9个
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AH,09H
MOV DX,OFFSET MESS1
INT 21H ;屏幕显示THE NUMBER OF EVEN NUMBERS:
MOV CX,9 ;设置循环此数
MOV AH,0 ;AH存放统计的偶数个数
LEA SI,MEM
NEXT:MOV AL,[SI]
TEST AL,00000001B
JNZ QS ;奇数转QS
INC AH ;是偶数AH增1
QS:INC SI
LOOP NEXT
MOV DL,AH ;统计结束,开始显示
ADD DL,30H ;转ASCⅡ码
MOV AH,02H
INT 21H ;屏幕显示统计个数CODE ENDS
END START。