微机练习题2.docx

上传人:b****3 文档编号:10319133 上传时间:2023-05-25 格式:DOCX 页数:37 大小:155.49KB
下载 相关 举报
微机练习题2.docx_第1页
第1页 / 共37页
微机练习题2.docx_第2页
第2页 / 共37页
微机练习题2.docx_第3页
第3页 / 共37页
微机练习题2.docx_第4页
第4页 / 共37页
微机练习题2.docx_第5页
第5页 / 共37页
微机练习题2.docx_第6页
第6页 / 共37页
微机练习题2.docx_第7页
第7页 / 共37页
微机练习题2.docx_第8页
第8页 / 共37页
微机练习题2.docx_第9页
第9页 / 共37页
微机练习题2.docx_第10页
第10页 / 共37页
微机练习题2.docx_第11页
第11页 / 共37页
微机练习题2.docx_第12页
第12页 / 共37页
微机练习题2.docx_第13页
第13页 / 共37页
微机练习题2.docx_第14页
第14页 / 共37页
微机练习题2.docx_第15页
第15页 / 共37页
微机练习题2.docx_第16页
第16页 / 共37页
微机练习题2.docx_第17页
第17页 / 共37页
微机练习题2.docx_第18页
第18页 / 共37页
微机练习题2.docx_第19页
第19页 / 共37页
微机练习题2.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机练习题2.docx

《微机练习题2.docx》由会员分享,可在线阅读,更多相关《微机练习题2.docx(37页珍藏版)》请在冰点文库上搜索。

微机练习题2.docx

微机练习题2

《微机原理及接口技术》练习题

1.十六进制数0FFF8H表示的十进制正数为_65528___,表示的十进制负数为____-8____。

2.十六进制数41H表示的十进制正数为65;表示的ASCII码字符是A。

3.十进制数57的压缩BCD编码是01010111。

4.已知X=+20,Y=-20,则[X]补=00010100,[Y]补=11101100。

5.采用补码表示的8/16位二进制数真值范围是8位:

-128~+127.16位:

-32768~+32767。

6.某带符号十进制数的补码是E9H,则该十进制数是-23。

7.已知X=-30,Y=-27,补码运算求X+Y的值10111001=-57。

8.一个完整的计算机系统通常应包括硬件和软件。

9.计算机硬件中最核心的部件是ALU。

10.计算机的软件系统一般分为两大部分系统软件和应用软件。

11.系统总线的组成、作用。

系统总线是CPU与其他部件之间传送数据,地址和控制信息的公共通道。

由数据总线,地址总线,控制总线组成。

12.8086CPU的主要由哪两部分组成?

它们的主要功能是什么?

它们如何协同工作?

EU和BIU。

EU:

从BIU指令队列中取出指令代码,经指令译码器译码后执行指令规定的全部功能。

BIU:

根据EU的请求,完成CPU与存储器或I/O设备之间的数据传送。

通过并行工作方式协同工作。

13.8086CPU有哪几个寄存器?

分成哪些类型?

它们的主要作用是什么?

14个16位寄存器。

通用寄存器,控制寄存器,段寄存器。

14.8086/8088CPU中,用来存放指令代码的功能部件是BIU。

在EU中起数据加工与处理作用的功能部件是ALU。

15.8086CPU中,可用作寄存器间接寻址或基址、变址寻址的地址寄存器有SIDISPBP。

16.8086CPU中,可当成1个16位或2个8位使用的寄存器有AXBXCXDX。

17.8086/8088存储器分四个段,这四个段的段名是代码段,数据段,堆栈段,附加段;所对应的段寄存器分别是CS,DS,SS,ES。

18.IP的名称是指令指针寄存器;作用是存放EU要执行的下条指令偏移地址。

19.堆栈操作以子为单位,按照先进后出的原则来处理。

堆栈操作中用于指示栈顶地址的寄存器是SP。

20.简述寄存器AX、BX、CX、DX在指令中的特定用法。

分成独立的两组8位寄存器使用,16位寄存器主要用于存放数据和地址,而8位寄存器只能用于存放数据。

21.简述段地址寄存器与偏移地址寄存器的搭配使用规律。

22.8086的数据总线和地址总线分别是16和20条。

23.8086系统可访问的内存空间范围是1MB;I/O地址空间范围是64KB。

24.8086/8088存储器地址是分段管理的,为什么?

扩大范围和提高效率。

25.8086/8088存储器地址分段时,每个段起始地址的特征是低四位为0。

26.8088/8086存储器分段,每个段不超过64KB。

段内偏移地址从0000H到FFFFH。

27.8086取指令时,由CS提供的段地址和IP提供的偏移地址形成20位物理地址。

28.在8086/8088系统中,存储器是分段组织的,按各段实际长度定位。

已知DS=2150H,CS=2640H,SS=2250H,SP=100H,问题:

数据段起始地址是多少?

21500H

计算数据段中最多可以存放多少个字节数据?

(要有具体计算式)2^16=64KB

代码段最多可以存放多少个字节程序代码?

说明理由。

64KB.8086系统内所有寄存器都只有16位,只能寻址64KB

29.8086/8088CPU允许最大的存储空间为1MB,因此CPU的地址总线是20位。

30.逻辑地址由段地址和偏移地址组成。

31.当SS=9876H,SP=4328H,执行POPF指令后,堆栈顶部的物理地址是9CA8AH。

32.在8086/8088系统中,存储器物理地址是分段组织的。

堆栈段的段地址存放在__SS寄存器中,栈顶数据的偏移地址放在SP寄存器中。

代码段的段地址存放在CS寄存器中。

偏移地址在IP寄存器中。

33.计算机指令由操作数和操作码两部分组成。

34.用汇编语言指令所编写的程序,称为汇编源程序;经过汇编产生目标程序;目标程序经链接后产生可执行文件。

35.若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOVAX,[SI+COUNT]中,源操作数的有效地址EA为20A8H,其物理地址为11488H。

36.CPU的标志寄存器中共有9个标志位,可以分为两大类,其中一类称为控制标志位,另一类称为状态标志位。

37.简述标志寄存器F中各状态标志的作用。

CF,DFAF,ZF,SF,OF

在8086/8088CPU控制寄存器中,IP寄存器内容始终指向下一条指令的首地址,此时该指令38.物理地址计算式是PA=CS*10H+IP。

39.CPU要访问的某一存储单元的实际地址称为物理地址。

40.列出8086指令常用的寻址方式,并各举例说明。

若为存储器操作数,说明其物理地址计算方法。

立即数寻址:

MOVAX,2000H;

寄存器寻址:

MOVAL,BL;

寄存器间接寻址:

MOVAX,[BX];

直接寻址:

MOVAX,[2000H];

基址变址寻址:

MOVAX,[BX][SI];

相对基址变址寻址:

MOVAX,MASK[BX][SI];

41.8086汇编语言指令,按功能分成哪几类?

数据传送类指令。

算术运算类指令。

逻辑运算与移位指令。

串操作类指令。

控制转移类指令。

处理器控制类指令。

42.在8086指令系统中,寄存器间接寻址方式的操作数位于存储器中;立即寻址方式的操作数在代码段中。

43.在访问存储单元时,使用寄存器间接寻址方式,允许使用的寄存器是BP,BX,SI,DI。

44.写出下列指令中,源操作数的寻址方式:

MOVAX,3069H;立即数寻址

MOVAL,‘A’;立即数寻址

MOVAL,BH;寄存器寻址

MOVAX,[2000H];直接寻址

MOVAX,ES:

[2000H];直接寻址

MOVAX,BUF;直接寻址BUF为变量名

MOVAX,ES:

[BX];寄存器间接寻址

MOVAX,[BP];寄存器间接寻址

MOVAX,COUNT[SI];相对变址寻址

MOVAX,[BX][SI];基址变址寻址

MOVAX,[BX][DI];基址变址寻址

MOVAX,MASK[BX][SI];相对基址变址寻址

45.已知:

BX=1357H,DI=2000H,DS=2000H,CS=4000H,分别计算下面各指令中存储器操作数的物理地址。

(1)MOVAL,[BX]PA=21357H

(2)MOVCS:

[BX+DI],AHPA=43357H

46.判断下列指令是否正确,如有错误,说明原因。

MOVAL,BX;错,操作数和源操作数类型不一致

MOV[2000H],100;立即数不能送存储单元

PUSHBX;正确。

OUTDX,BL;错,I/O的数据传送用AL

MUL40H;不能直接跟立即数

MOV[SI],[BX];

INAL,DX;正确

ROLAL,2;数值大于1时应先放在CL中

PUSHCS;正确

MOVCS,2000H;CS不能作为目的操作数

MOVAL,[BX+SI];正确

INAL,2F0H;错,地址大于FFH应放在DX中

MOVCS,BX;CS不能作为目的操作数

POPDS;正确

PUSHCL;错,堆栈以字为单位

DIV40H;不能直接跟立即数

MOVDS,ES;错,段地址间不能直接传送数据

INAL,60H;正确

47.数据段中下列语句在存储器中分别为变量分配多少个字节?

画出示意图。

AD1DW10HDUP(?

),10H34字节

COUNTEQU10

AD2DB3DUP(2DUP(3))6字节

AD3DDCOUNTDUP(?

)40字节

48.画出下列伪指令定义的存储空间分配图,写出各单元内容(十六进制)。

VAR1DB'A'

VAR2DW2233H

VAR3DB2DUP(2,3),25H

49.DOS系统功能调用INT21H的功能选择,应将相应的功能号放在AH寄存器中,实现键盘输入一个字符的功能号是01H;显示单个字符的功能号是02H。

50.伪指令语句VARDW4DUP(1,2),?

在存储器中为变量数据区分配了18字节单元。

51.8086CPU的十进制加法调整指令DAA依据AF,AL,CF的值完成相应的调整操作。

52.循环指令LOOPNZ终止循环的条件是CX=0或ZF=1。

53.执行指令MULBX后,乘积存放在AX,DX寄存器中。

54.指令MOVAL,[BP]的源操作数在存储器中。

55.已知AX=1234H

MOVBX,AX

NOTBX

XORBX,AX

上述程序段执行后,BX=FFFFH。

如把XOR指令改为OR指令,那么程序段执行后,BX=FFFFH。

56.为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句是D.

A.DB41,42,43,44,45,46B.DW4142H,4344H,4546H

C.DW'AB','CD','EF'D.DW'BA','DC','FE'

57.DA2DB'AB','CD'

MOVAX,WORDPTRDA2+1

上述语句执行后AX中的值是D。

A.'AD'B.'BC'

C.'DA'D.'CB'

58.指令指针寄存器IP是用于存放代码段的__偏移地址。

59.与LEABX,VAR等效的指令是MOVBX,OFFSETVAR。

60.设SP初值为2000H,执行指PUSHAX后,SP的值是1FFEH。

条件转移指令JB产生程序转移的条件是A。

A.CF=1  B.CF=0

C.CF=1且ZF=1  D.CF=1且ZF=0

61.设AL=20H,SI=0500H,DS=3000H,(30500H)=0C0H,CF=1.执行SBBAL,[SI]后,正确的结果是C。

A.AL=5FHSF=1CF=1

B.AL=60HSF=1CF=0

C.AL=5FHSF=0CF=1

D.AL=60HSF=0CF=0

62.设AX=1000H

NEGAX

NOTAX

执行上述指令后,正确的结果是B。

A.AX=1001H  B.AX=0FFFH

C.AX=1000H  D.AX=0111H

63.CBW指令的功能是B。

把源操作数的符号位扩展到目的操作数中

把AL中的符号位扩展到AH中

把AH中的符号位扩展到AL中

把AX中的符号位扩展到DX中

64.汇编语言源程序中,每个语句可由四项组成,其中名字项是一个符号,下面列出的有效名字是A。

A.Variable  B.First&ld

C.0FFFFH  D.‘Memphis’

65.要求将A,B两个字符的ASCⅡ码41H,42H顺序存放在连续两个字存储单元中,可选用的语句是A。

A.DA1DB‘AB’

B.DA1DW‘AB’

C.DA1DB0ABH

D.DA1DW0ABH

66.MOVCL,8

ROLAX,CL

ORAX,BX

假设AX=0012H,BX=0034H,那么上述程序段执行后,AX中的结果是1234H。

67.选用NOT、AND、OR、XOR逻辑指令编写一指令序列,实现将AL第0位,第2位同时置1,其他位变反。

ORAL,00000101BXORAL,11111010B

68.MOVAX,0BC5FH

MOVBX,0C0FBH

XORAX,BX

XORAX,BX

上述程序段运行后,AX=_0BC5FH,CF=0

69.HEXDB‘0123456789ABCDEF’

HCODDB?

?

MOVBX,OFFSETHEX

MOVAL,1AH

MOVAH,AL

ANDAL,0FH

XLAT

MOVHCOD+1,AL

MOVCL,12

SHRAX,CL

XLAT

MOVHCOD,AL

上述程序段运行后,HCOD和HCOD+1两字节单元内容是什么?

31H,41H

70.MOVBL,0FFH

ANDBL,0F0H

ORAL,0FFH

XORBL,AL

上述程序段运行后,AL=FFH,BL=0FH。

71.MOVAX,0E453H

ADDAX,0C572H

72.上述程序段运行后,标志寄存器中CF=1,SF=1,ZF=0,OF=0,PF=1。

73.某源程序如下,在DEBUG下用反汇编命令查看程序如右边所示。

DATASEGMENT

S1DB35H,18H

S2DB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

DEBUG下查看到的内容

MOVDS,AX

LEABX,S1

MOVAL,[SI]

INCSI

ADDAL,[SI]

DAA

MOVS2,AL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

则变量S2的物理地址是144A2H;程序执行后,S2的值是53H;

代码段寄存器CS的值是144BH;指令INCSI的逻辑地址是144B:

000B。

74.XDB0F8H

YDB3DUP(?

LEADI,B

MOVCX,3

MOVAL,A

LOP:

SARAL,1

MOV[DI],AL

INCDI

LOOPLOP

上述程序段运行后,从Y单元开始依次存放的数据是什么?

0FCH,0FEH,0FFH

75.已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么?

MOVCX,10

LEABX,BUF

K2:

MOVAL,[BX]

CMPAL,‘Z’

JBEK1

SUBAL,20H

MOV[BX],AL

K1:

INCBX

LOOPK2

MOVCL,8

MOVAL,0

NOTAL

ROLAL,CL

CMPAL,0FFH

JZNEXT

MOVAL,0

NEXT:

……

功能:

将10个大小写字母中的小写字母转换为大写字母。

上述程序段运行后,AL=_FFH,CF=_0。

76.假设SP=1006H,AX=1234H,BX=5678H:

PUSHAX

PUSHBX

POPAX

上述程序段运行后,AX、BX值有和变化,画出堆栈变化情况示意图。

77.已知数据段中定义:

TABDB0C0H,0F9H,0A4H,0B0H,99H,92H

DB82H,0F8H,80H,90H,

CNTEQU$-TAB

程序段如下所示:

LEABX,TAB

MOVAL,05H

XLAT

程序段执行后AL=92H,CNT=10。

78.MOVAL,34H

ADDAL,59H;AL=8DH

DAA;AL=93H

79.将AL寄存器中位3清0、位5置1、位7取反,其它位保持不变,可以用什么指令系列实现?

ANDORXOR

80.比较指令SUB与CMP、AND与TEST的异同点。

SUB与CMP:

都是执行减操作,但SUB存结果,CMP不存。

AND与TEST:

都是执行与操作,但AND存结果,TEST不存

81.编写一个完整的源程序:

X,Y,Z三个字节存储单元中各有一个无符号数,其中有两个数据相等,找出不相等的那个数,并存入W单元中。

Datasegment

xdb1

ydb2

zdb1

wdb?

Dataends

Codesegment

Assumecs:

code,ds:

data

movax,data

movds,ax

moval,[x]

cmpal,[y]

jnzyz

moval,[z]

jmpdone

Yz:

moval,[y]

cmpal,[z]

jnzyw

moval,[x]

jmpdone

Yw:

moval,[y]

Done:

mov[w],al

movah,4ch

int21h

Codeends

end

 

82.编程:

把存储单元A和B中的两个压缩BCD数相加,结果存入存储单元C中,并将结果显示。

datasegment

adb23h

bdb45h

cdb?

dataends

codesegment

assumecs:

code,ds:

data

movax,data

movds,ax

moval,[a]

addal,[b]

daa

mov[c],al

andal,0f0h

movcl,4

shral,cl

addal,30h

movdl,al

movah,2

int21h

moval,[c]

andal,0fh

addal,30h

movdl,al

movah,2

int21h

movah,4ch

int21h

codeends

end

83.编程:

在以BUF为首址的内存存放有0~15的平方值表。

查表求X单元中数(在0~15之间)的平方值,并送回X单元。

datasegment

bufdb0,1,4,9,16,25,36,49,64,81,100

db121,144,169,196,225

xdb13

dataends

codesegment

assumecs:

code,ds:

data

movax,data

movds,ax

leabx,buf

moval,[x]

xlat

mov[x],al

movah,4ch

int21h

codeends

end

84.编程:

将字节变量DISP的内容显示出来。

DATA  SEGMENT 

DISP  DB 7FH 

BUF   DB ?

?

0DH,0AH,'$' 

TABLE DB '0123456789ABCDEF' 

DATA  ENDS 

CODE  SEGMENT 

ASSUME CS:

CODE,DS:

DATA 

START:

MOV AX,DATA       

MOV DS,AX       

LEA BX,TABLE       

LEA SI,BUF       

MOV AL,DISP       

MOV CL,4       

SHR AL,CL 

XLAT       

MOV [SI],AL       

INC SI       

MOV AL,DISP       

AND AL,0FH       

XLAT       

MOV [SI],AL       

LEA DX,BUF       

MOV AH,09H       

INT 21H       

MOV AH,4CH       

INT 21H 

CODEENDS

ENDSTART

85.编程:

将无符号数A、B中的大数送C单元中。

DATA   SEGMENT 

 A    DB 39H                

B    DB 0B4H   

C    DB ?

 DATA   ENDS 

CODE   SEGMENT  

ASSUME CS:

CODE,DS:

DATA 

START:

 MOV AX,DATA        

MOV DS,AX        

MOV AL,A        

CMP AL,B        

JNB NEXT        

XCHG AL,B        

MOV C,AL  

NEXT:

 MOV AH,4CH        

INT 21H 

CODEENDS

ENDSTART  

86.编程:

将AX的绝对值放RES单元中。

DATASEGMENT

RESDB?

XDB-5

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX[X]

CMPAX,0

JGENT

NEGAX

NT:

MOVRES,AX

CODEENDS

ENDSTART

87.编程:

比较D1、D2单元中的字符,相同显示YES,不同显示NO。

DATA  SEGMENT 

D1     DB ‘A’ 

D2     DB ‘B’ 

RES1   DB ‘YES’, ’ $ ’ 

RES2   DB ‘NO’, ’ $ ’ 

DATA   ENDS 

CODE   SEGMENT  

ASSUME CS:

CODE,DS:

DATA 

START:

 MOV AX,DATA        

MOV DS,AX        

MOV AL,D1        

MOV BL,D2      

CMP AL,BL         

JNE NEXT1        

LEA DX,RES1         

JMP NEXT2          

NEXT1:

 LEA DX,RES2 

NEXT2:

 MOV AH,09H        

INT 21H          

MOV AH,4CH        

INT 21H    

CODE ENDS  

ENDSTART    

88.编程实现符号函数功能(+127X-128)。

datasegment

xdb-23h

ydb?

dataends

codesegment

assumecs:

code,ds:

data

movax,data

movds,ax

moval,[x]

cmpal,0

jzzero

jlnegative;JS?

JC?

moval,1

jmpzero

negative:

moval,-1

zer

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2