微机原理试题 汇编重点练习题Word文档下载推荐.docx
- 文档编号:1460971
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:20
- 大小:28.72KB
微机原理试题 汇编重点练习题Word文档下载推荐.docx
《微机原理试题 汇编重点练习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理试题 汇编重点练习题Word文档下载推荐.docx(20页珍藏版)》请在冰点文库上搜索。
传送10H到BL寄存器________________
AL的内容乘BL的内容________________
4.假定(BX)=11100011B,变量VALUE的值为01111001B,确定下列各条指令单独执行后的结果
(1)XORBX,VALUE__________________
(2)ANDBX,VALUE__________________
(3)ORBX,VALUE___________________
(4)XORBX,11111111B___________________
5.假设(SS)=25A3H,(SP)=01A0H,如果执行8次PUSHAX指令,则栈顶物理地址为__________,随后又执行了三次POPBX指令,则栈顶的物理地址为__________。
6.选择指令实现下列要求,OPN1OPN2的含义:
把操作数OPN2的值传送给OPN1。
(1)EBXEDX__________________
(2)BXCL__________________
(3)SIBX__________________
(4)DSAX__________________
(5)ALBH__________________
(6)AL12H__________________
(7)AX13AH__________________
(8)CX0CDH(假设0CDH为无符号数)__________________
(9)SI1000H__________________
(10)EBX1200A2H__________________
7.在数据段定义中有ORG100H和variabledw34h,56h两条伪操作,则执行LEABX,variable后,(BX)=;
执行MOVBX,variale+1后,(BX)=。
8.指出下列各种操作数的寻址方式
1)、[DI]
2)、BX
3)、665H
4)、[BP+SI+123]
5)、[79]
6)、String(String是一个内存变量名)
1、段寄存器是根据内存分段的管理模式而设置的。
其中代码段寄存器(CS)值为代码段的段值;
数据段寄存器DS值为数据段的段值;
段寄存器ES值为的段值;
段寄存器SS值为的段值。
2、指令指针EIP、IP是存放下次将要执行的在代码段的。
3、进位标志CF主要用来反映运算是否产生或借位。
如果运算结果的最高位产生了一个进位或借位,那么,其值为。
4、访问堆栈段栈顶单元要由段寄存器和寄存器组合来寻址,访问堆栈段中的单元要由段寄存器和寄存器组合来寻址;
5、符号标志SF用来反映运算结果的,它与运算结果的相同。
在微机系统中,有符号数采用补码表示法,所以,SF也就反映运算结果的正负号。
运算结果为时,SF的值为0,否则其值为1。
6、地址表达式是计算的表达式,它可由、变量名和由括号括起来的基址或寄存器组成。
7、除法指令的是隐含操作数,在指令中显式地写出来。
CPU会根据除数是8位、16位,还是32位,来自动选用被除数AX、,还是EDX-EAX。
8、假设指令:
MOVBX,[BX+SI],在执行时,(DS)=1000H,(BX)=2100H,(SI)=0011H,内存单元12111H的内容为1234H。
在执行本例指令时,源操作数的有效地址EA为。
该指令执行后,BX的值是。
三、判断题
1.判断题下列指令的正误。
(1)MOVBL,CX
(2)MOVDS,SS
(3)MOV[BX],[DI]
(4)MOVAL,[BX][SI]
(5)MOVES,AL
(6)MOVDS,DX
2.判断下列标识符的合法性。
(1)code
(2)Data
(3)ABCDH
(4)1abcH
(5)eax
(6)?
?
01
3.、判断下列操作数的寻址方式的正确性,对正确的,指出其寻址方式,对错误的,说明其错误原因。
1)、[AX]
3)、BP
5)、DS
7)、[BX+BP+32]
9)、[CX+90]
11)、BX+90H
13)、SI[100h]
4)、[SI+DI]
6)、BH
8)、[BL+44]
12)、[DX]
14)、[BX*4]
16)、[DX+90H]
4、判断下列指令的正确性,若某指令是错误的,请说明其错误原因。
1)、MOV
BL,CX
2)、MOV
DS,SS
3)、MOV
[BX],[DI]
4)、MOV
AL,[BX][SI]
5)、MOV
ES,AL
6)、MOV
DS,DX
7)、MOV
CS,AX
8)、MOV
BX,CS
9)、MOV
DS,1230H
10)、MOVSX
DS,AL
11)、XCHG
BX,3
12)、POP
CS
13)、MOV
IP,SI
14)、PUSH
15)、PUSH
BL
16)、MOV
[SP],BX
17)、MOV
AX,BX+3
18)、MOV
AX,[BX+3]
19)、MOV
BX,[BX]
20)、MOV
BH,[BL]
21)、XCHG
ES,AX
22)、LEA
AX,[BX+SI]
23)、MUL
10H
24)、IMUL
DX,10H
25)、DIV
10
26)、IDIV
27)、SHL
AX,CX
28)、SHR
BX,CH
29)、ROL
BX,20
30)、RCR
AX,CL
31)、CMP
AX,1234H
32)、CMP
12H,CL
33)、JCXZ
next
四、简述题
1.简述指令MOVBX,1234H、MOVBX,[1234]和MOVBX,offset[1234H]的功能和它们之间区别
2.简述数值表达式与地址表达式的主要区别
1、在16位CPU中,有哪些8位寄存器、16位寄存器?
哪些16位寄存器可分为二个8位寄存器来使用?
2、在标志寄存器中,反映运算结果属性的标志位OF、SF、PF各自所表示的含义是什么?
3、访问内存单元的寻址方式有哪几种?
4、指出下列各种操作数的寻址方式。
1)、[BP+987]
2)、AX
3)、[DI+55]
4)、[576]
5)、DAT(DAT是一个内存变量名)
6)、[BX]
7)、435H
8)、SI
9)、[BP+DI+123]
10)、data(data是一个内存变量名)
11)、[BX+SI]
12)、[BP+4]
5、判断下列操作数的寻址方式的正确性:
2)、BP
3)、DS
4)、[BX+BP+32]
5)、[CX+90]
6)、BX+90H
6、按下面要求写出相应的数据定义语句(未指定变量名的,可任意指定或省缺)。
1)、定义一个字节区域,第一个字节的值为89,其后跟25个初值为0的连续字节;
2)、定义一个以0为结束符的字符串,其初值为:
MYNAMEISHG;
3)、定义一个以'
$'
为结束符的字符串,该串中含有换行符和回车符;
4)、定义55个字,其初值为9;
7、在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值?
8、在ASCII表,字符'
0'
~'
9'
与数值0~9之间编码规律是什么?
大写字母和小写字母之间的编码规律是什么?
9、在16位CPU中,有哪些8位寄存器、16位寄存器?
10、简述各通用寄存器的主要功能?
11、简述各段寄存器所指段的含义。
12、在标志寄存器中,用于反映CPU状态控制的标志位有哪些?
它们每一位所表示的含义是什么?
13、在标志寄存器中,用于反映运算结果属性的标志位有哪些?
14、访问内存单元的寻址方式有几种?
它们具体是哪些?
15、哪些寄存器的值可用于表示内存单元的偏移量?
16、指出下列各寻址方式所使用的段寄存器。
1)、[SI+34h]
3)、ES:
[BP+DI]
5)、[BP+1234H]
2)、[456H]
4)、[BX+DI+200H]
17、写出下列指令序列中每条指令的执行结果。
MOVBX,23ABH
ADDBL,0ACH
MOVAX,23F5H
ADDBH,AL
SBBBX,AX
ADCAX,12H
五、分析题
双字加法指令序列为:
SUB AX,CX
ADC DX,BX
指令执行前,DX=2,AX=0F362H,BX=5,CX=0E012H
写出当指令序列执行完成后,DX、AX、BX、CX的值及CF、OF、SF、ZF标志位的值。
六、计算题
1、假设用以下寄存器组合来访问存储单元,试求出它们所访问单元的物理地址。
1)、DS=1000H和DI=2000H
3)、SS=2300H和BP=3200H
5)、SS=2900H和SP=3A00H
2)、DS=2000H和SI=1002H
4)、DS=A000H和BX=1000H
2、已知寄存器EBX、DI和BP的值分别为12345H、0FFF0H和42H,试分别计算出下列各操作数的有效地址。
1)、[BX]
2)、[DI+123H]
3)、[BP+DI]
5)、[1234H]
6)、[EBX*2+345H]
3、计算下列各数值表达式的值。
1)、12HAND78H
3)、5467HXOR12FFH
5)、10LT9
7)、1234H+89HSHL1
2)、1234MOD3+23H
4)、'
A'
OR20H
8)、8910HSHR2AND506H
4、假定DS=1123H,SS=1400H,BX=0200H,BP=1050H,DI=0400H,SI=0500H,LIST的偏移量为250H,试确定下面各指令访问内存单元的地址。
1)、MOVAL,[1234H]2)、MOVAX,[BX]
3)、MOV[DI],AL4)、MOV[2000H],AL
5)、MOVAL,[BP+DI]6)、MOVCX,[DI]
7)、MOVEDX,[BP]8)、MOVLIST[SI],EDX
9)、MOVCL,LIST[BX+SI]10)、MOVCH,[BX+SI]
11)、MOVEAX,[BP+200H]12)、MOVAL,[BP+SI+200H]
13)、MOVAL,[SI-0100H]14)、MOVBX,[BX+4]
5、标志位CF有着重要的作用,请简述之,并至少写出三种把CF置0的方法。
七、编程题
1.以下指令序列,实现在字符串LIST中查寻字符’B’,若找到,则转向Found,否则,转向NotFound,假设该字符串含有300个字符。
)请加上注释
CLD;
__________________
MOVAX,SEGLIST
MOVDS,AX
LEASI,LIST;
MOVCX,300;
MOVAL,42H;
REPNZSCASB;
JZFound
JMPNotFound
2、已知字节变量char,编写程序段把其所存的大写字母变成小写字母。
解:
…
charDB'
F'
;
变量说明
MOVAL,char
CMPAL,'
JBnext;
注意:
字符是无符号数,不要使用指令JL
Z'
JAnext
ADDchar,20H;
小写字母比大写字母的ASCII码大20H
next:
…
3、编写一段程序,完成下面计算公式,其中:
变量X和Y都是字类型。
…
XDW?
;
YDW?
MOVAX,X
MOVBX,AX;
用BX来临时存放计算结果
CMPAX,0
JLEsetdata;
AX-0<
=0,则ZF=1,转移;
否则AX-0>
0继续执行后边的指令
CMPAX,500
JGcase3;
AX-500>
0,则ZF=0结果为正无溢出,转移否则AX-500<
=0:
ADDBX,100D;
BX=X+100
JMPsetdata
case3:
SUBBX,50D;
BX=X-50
setdata:
MOVY,BX;
把计算结果赋给变量Y
4、按下列要求编写指令序列。
1)、清除DH中的最低三位而不改变其它位,结果存入BH中;
2)、把DI中的最高5位置1而不改变其它位;
3)、把AX中的0~3位置1,7~9位取反,13~15位置0;
4)、检查BX中的第2、5和9位中是否有一位为1;
5)、检查CX中的第1、6和11位中是否同时为1;
6)、检查AX中的第0、2、9和13位中是否有一位为0;
7)、检查DX中的第1、4、11和14位中是否同时为0;
5、分类统计字数组data中正数、负数和零的个数,并分别存入内存字变量Positive、Negative和Zero中,数组元素个数保存在其第一个字中。
解:
DATA1SEGMENT
data DW 10
DW 2130,-43,31,-321,-1234,345,0,3213,0,5477
PositiveDW ?
Negative DW ?
Zero DW ?
DATA1ENDS
CODE1SEGMENT
ASSUMECS:
CODE1,DS:
DATA1
START:
MOV AX,DATA1
MOV DS,AX
XOR AX,AX;
用来对正数计数
XOR BX,BX;
用来对负数计数
XOR DX,DX;
用来对零计数
MOV CX,data
JCXZ save;
考虑数组的元素个数为0的情况P83
LEA SI,data+2;
用指针SI来访问整个数组
again:
CMP wordptr[SI],0
JL lower
JE equal
INC AX;
否则为正
JMP loop1
lower:
INC BX
equal:
INC DX
loop1:
ADD SI,2;
对下一个数进行分析
LOOP again
save:
MOV Positive,AX;
把各类的统计数保存到内存单元中
MOV Negative,BX
MOV Zero,DX
MOV AX,4C00H
INT 21H
CODE1ENDS
END START
部分参考答案
一、选择题
1、B(131,146,95,94)
2、B[X-Y]补=[X]补+[-Y]补[-Y]补等于对[Y]补求反加一
3、D
4、D
5、C
6、C
7、C
8、C
9、B
10、D
二、填空
1、指令执行结果标志位
MOVBX,23ABHBX=23ABH--------
ADDBL,0ACHBX=2357HOV,PL,AC,PO,CY
MOVAX,23F5HAX=23F5H--------
ADDBH,ALBX=1857HNV、NA、PE
SBBBX,AXBX=F461HNG、PO
ADCAX,12HAX=2408HPL、NC
SUBBH,-9BX=FD61HNG、AC、CY
2、000EAH
3、MOVAL,15H
SHLAL,1
MOVBL,10H
MULBL
4、10011010B
01100001B
11111011B
00011100B
5、25BC0H25BC6H
6、1)MOVEBX,EDX2)MOVSXBX,CL
3)MOVSI,BX4)MOVDS,AX
5)MOVAL,BH6)MOVAL,12H
7)MOVAX,13AH8)MOVCX,00CDH
9)MOVSI,1000H10)MOVEBX,1200A2H
7、0100H5600H
8、1)寄存器间接寻址寄存器相对寻址
2)寄存器寻址
3)立即数寻址
4)相对基址加变址寻址
5)直接寻址
6)直接寻址
1、附加数据段、堆栈段
2、指令、偏移量。
3、进位、1,
4、访问堆栈段栈顶单元要由
SS
段寄存器和
SP
寄存器组合来寻址,访问堆栈段中的单元要由
BP
寄存器组合来寻址;
5、符号位,最高位,正数
6、存储单元地址,标号、变址
7、被除数,除数,DX-AX,
8、2111H,1234H。
EA=(BX)+(SI)=2100H+0011H=2111HPA=(DS)*16+EA=1000H*16+2111H=12111H
三、判断
1、1)错误,寄存器类型(位数)不匹配。
2)错误,不能直接将段寄存器的值赋予另外一个段寄存器。
3)错误,两个操作数不能同为内存单元。
4)正确。
5)错误,寄存器类型(位数)不匹配。
6)正确。
2、1)、合法2)、合法3)、合法
4)、不合法5)、不合法6)、合法
四、简述题
1、答:
MOVBX,1234H的作用是将寄存器BX的当前值设为1234H;
MOVBX,[1234]的作用是取出内存地址1234H的当前值赋予寄存器BX;
MOVBX,offset[1234H]的作用是取内存地址1234H的偏移量,而地址[1234H]的偏移量就是1234H,所以,指令的执行效果就是把1234H赋予寄存器BX。
2、答:
数值表达式是在汇编过程中能够由汇编程序计算出来的数值型表达式,它的各组成部分在汇编时就能完全确定。
它通常是一些常量的运算组合。
地址表达式是计算存储单元地址的表达式,它可由标号、变量名和由括号括起来的基址或变址寄存器组成。
其计算结果表示一个存储单元的地址,而不是该存储单元的值。
地址表达式的结果不能在汇编时确定,而是在程序执行过程中才确定的。
1、在16位CPU中,有哪些8位寄存器、16位寄存器?
答:
16位CPU所含有的16位寄存器:
4个数据寄存器(AX、BX、CX和DX)、2个变址和指针寄存器(SI和DI)、2个指针寄存器(SP和BP)、4个段寄存器(ES、CS、SS和DS)、1个指令指针寄存器(IP)、1个标志寄存器(Flags)。
16位CPU所含有的8位寄存器:
AH、AL、BH、BL、CH、CL、DH、DL
可分为二个8位寄存器:
AX、BX、CX和DX
2、在标志寄存器中,反映运算结果属性的标志位OF、SF、PF各自所表示的含义是什么?
奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。
如果“1”的个数为偶数,则PF的值为1,否则其值为0。
符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。
溢出标志OF用于反映有符号数加减运算所得结果是否溢出。
如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF的值被置为1,否则,OF的值被清为0。
3、访问内存单元的寻址方式有哪几种?
直接寻址、寄存器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理试题 汇编重点练习题 微机 原理 试题 汇编 重点 练习题