1106复习题参考答案.docx
- 文档编号:6131582
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:39
- 大小:33.72KB
1106复习题参考答案.docx
《1106复习题参考答案.docx》由会员分享,可在线阅读,更多相关《1106复习题参考答案.docx(39页珍藏版)》请在冰豆网上搜索。
1106复习题参考答案
一、简答题
1、一条机器指令包括哪两个部分,各有什么作用?
操作码说明指令的功能,地址码说明怎样做(所操作的数据或数据位置)。
2、内存RAM的特点什么?
存储内容可以动态地变化,每隔一定时间刷新一遍,每次读出后需根据原存内容全部刷新一遍
3、8088内有20根地址线,其寻址空间是多少字节?
1M
4、Intel8086CPU的字长为多少位,地址总线为多少位,寻址范围为多少?
16位,20位,1M
5、什么是汇编语言?
汇编指令一般由那二部分组成?
用助记符表示操作码和机器指令一一对应的遵循一定语法规则的语言。
由操作码与操作数组成
6、写出将源程序A1汇编并运行的步骤与键盘命令。
MASMA1/LINKA1/A1
7、写出汇编语言源程序的基本架构。
DATASEGMENT
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
8、用户为了解决自己的问题,用汇编语言所编写的程序,称为什么程序?
源程序
9、汇编语言源程序中,每个语句可由四项组成,其中标号是一个符号,其取名有什么规则?
由字母打头、由至多31个字母、数字及规定的特殊字符(?
、@、_、$)等组成。
例Variable,不能由数字打头。
10、指令指针寄存器是什么?
其意义是什么?
IP总指向下一条将执行的指令的地址。
11、DB–80H在机内存储形式是什么?
80H
12、LOOPZ、REPZ重复的条件是什么?
CX<>0且ZF为1(相等重复)
13、IBMPC微处理器主要由那些部件构成?
运算部件、控制部件、接口部件
14、在PC机中,一个段的大小不能超过多少个字节?
64KB
15、在一般指令中使用DI寄存器进行存储器寻址时,系统默认的段寄存器是什么?
在串操作指令中呢?
在一般指令中使用DI寄存器进行存储器寻址时默认DS,在串操作指令中DI寄存器为目的寄存器,默认ES
16、数据段地址一般存放在哪个段寄存器中?
DS
17、物理地址由那二部分组成?
段地址、偏移地址
18、现欲用debug程序调试程序A1.EXE,已知结果存放在DX中。
简述运行debug调入程序、反汇编、运行全过程。
Debug<程序名>/U/G=0
19、在指令语句操作数项上,引用一个段名其意义是什么?
所定的段的段地址
20、在DEBUG下,可用于执行指令或程序的命令有那些?
可用于反汇编的命令是什么?
查看命令是什么?
可用于单步执行的命令是什么?
G、T、P/U/D/T
21、一条指令为MOVBX,X1,其中X1的偏移地址为16(十进制),其值为28(十进制)。
在DEBUG下反汇编,显示的本指令源程序代码会变为什么内容。
MOVBX,[0010];属于直接寻址方式
22、在访问存储器操作数地址时,可以提供偏移地址的寄存器是什么?
BX,BP,SI,DI
23、在段内寻址时可以提供偏移地址的寄存器组是什么?
BP、BX、SI、DI
24、若X补=1101010B,则X原=?
10010101B
25、十六进制数88H,如果要写成:
无符号十进制数、带符号十进制数、十进制数压缩型BCD码、8位二进制数-8的补码各怎样写?
136,-119,88H,78H
26、将二进制数11100111B分别转换成十进制数和十六进制数。
231,0E7H
27、设N=45831D,求用十六进制数表示
0BC7
28、设N=1945D,求用压缩的BCD码表示和在内存中的存放形式
19H45H/45H,19H
29、已知语句:
VARDW1,2,$+2,5,6在汇编时分配的地址是0010H,则汇编后0014H单元的内容是多少?
16H
30、假设存储器中从7462H单元开始的四个相邻字节单元中的内容依次是32H,46H,52H,OFEH,则存放字数据OFE52H的字地址是什么?
7464H
31、为在一连续的存储单元中,依次存放数据41H,42H,43H,44H,45H,46H,可选用的数据定义语句如果用字节类型、用字类型、双字类型且数据用ABCD等字符,各如何表示?
DB‘ABCDEF’
DW‘BA’,’DC’,’FE’
DD'DCBA','FE'
32、在数据定义语句中怎样实现留空100H个字节存储单元?
VAR1DD10HDUP(?
)语句实现留空多少个字节单元?
VAR1DD10HDUP(?
0,0)语句呢?
DB100HDUP(?
)
DW80HDUP(?
)
DD40HDUP(?
)
(40H,12*10H)
33、有语句:
COUNTEQULE80H,COUNT是一个什么量?
是否占有存储单元?
常量,在程序中是立即数,等于0,不占存储单元
34、THIS与LABEL意义是什么?
定义一个新的类型的标号,段与偏移地址与紧接定义的下一个变量相同。
35、有符号定义语句如下,问L的值是多少?
DATASEGMENT
BUFFDB1,2,3,'123'
EBUFFDW0
LEQU$-BUFF
8
36、已定义数据:
BUFDW234AH在指令ADDAX,BUF[BX]中源操作数的寻址方式是什么?
操作数在什么地方?
操作数的物理地址如何表达?
相对寻址,数据区偏移地址=BUF+(BX)物理地址:
(DS)*16+BUF+(BX)
37、在指令CMPAX,[BX+SI]中源操作数的寻址方式是什么?
操作数在什么地方?
操作数的物理地址如何表达?
基址加变址,数据区偏移地址=(BX)+(SI),(DS)*16+(BX)+(SI)
38、在数据区定义了:
DA2DB'A’,’B','C’,’D'
执行语句:
MOVAX,WORDPTRDA2+1
后AX中的值是什么?
'CB'
39、DATASEGMENT
VAR1DB12H,34H
()
VAR2DB10HDUP(O)
ADR1DWVAR1,VAR2
DATAENDS
为使ADR1+2字存储单元中内容为0030H,上述括号中如果用ORG、用DB,各使用什么语句?
ORG30H
DB2EHDUP(0)
40、已知数据区如下所示,DD1、DD2DD3各分配多少个字节单元?
ADD1DD‘ab’,’cd’
BDD2DW10DUP(?
),2
CDD3DT‘A’
8,22,10
41、说明什么是立即寻址、间接寻址、相对寻址、基址变址寻址?
操作数各在什么地方?
立即寻址源操作数为常数,操作数存放在代码段中。
其他寻址为存储器寻址,操作数在数据段中。
42、MOVAX,[1234H]指令中的源操作数的寻址方式是什么?
目的操作数的寻址方式又是什么?
直接寻址寄存器寻址
43、已知BX=028AH,SI=0294H,(DS:
051EH)=5432H。
执行语句LEABX,[BX+SI]后,BX中的内容是什么?
051EH
44、设BX=1234H,DS=2000H,(21234H)=5678H,则指令“LEASI,[BX]”执行后的结果是什么?
1234H
45、设有如下数据定义与程序代码:
ORG100H
NUMEQU8042H
DA1DB56H
MOVBX,0FFSETDA1
上述程序段执行后BX中的值是什么?
100H
46、假设某数据段段名为DATA,VAR是该段中的一个变量,若实现将该段的段地址送入AX中,可用“MOVAX,DATA”语句实现,还可以用什么语句实现。
MOVAX,SEGVAR
47、完成下列操作,选用什么指令:
(1)将BX的内容,减去75AAH,和上次运算的借位;
SBBBX,75AAH
(2)将变量名X的段地址送DI;
MOVDI,SEGX
48、将AX的内容送入以SP为指针的堆栈中,使用什么语句?
SP的值将如何变化?
PUSHAX。
SP的值减2
49、堆栈中用来指示其中任意数据的偏移地址的寄存器是什么?
BP间址
50、当堆栈为空时,如SS=2000H,SP=100H,栈底将存入的字单元的物理地址是什么?
怎样理解SP总是指向栈顶的?
如果设置堆栈段空间的语句是:
DB100HDUP(0),且假如分配给堆栈段的段地址为2000H。
那么:
SS=2000H,SP=100H,其物理地址是20100H;栈底如果存入一字,SP将减2,其物理地址是200FEH
SP总是指向栈顶的,如果有PUSH操作,总是将数据压到SP所指单元的上面(2个单元)
51、执行POPBP指令时,源操作数的偏移地址可以如何表示?
物理地址表达式是什么?
(SP),16*SS+(SP)
52、执行PUSHBP指令时,目的操作数的物理地址表达式是?
16*SS+(SP)
53、串操作指令中,每次操作后使SI/DI为减量应设置那一个标志位?
DF=1,STD
54、选用串操作指令时,需要注意些什么操作?
,那些要求事先写累加器?
置方向标志位DF,根据串操作指令设置重复次数并送入CX,设置源操作数及目的操作数指针。
注意源、目的操作数的段地址规定分别放在DS与ES中。
REPNZSCASB之前和REPSTOSB之前要写累加器
55、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是什么?
CX=0或ZF=0
56、说明MOVS、CMPS、SCAS、STOS、LODS各意义是什么?
串传送指令MOVS将DS:
SI所指的一个串传送到ES:
DI所指处。
串比较指令CMPS将DS:
SI所指的一个串和ES:
DI所指的一个串进行比较,同时改变SI、DI的值,并置ZF。
串搜索指令SCAS将AL或AX中内容和ES:
DI所指的一个串中一个元素进行比较,同时改变DI的值,并置ZF。
串置数指令STOS将AL或AX中内容放到ES:
DI所指的一个串的中一个元素中,同时改变DI的值。
串读数指令LODS从DS:
SI所指的一个串的取一个元素到AL或AX中,同时改变SI的值。
57、已知(AX)=0A3H,若执行SUBAX,64H,将使标志寄存器的那些位置1?
OF
58、指令:
DEC、XCHG、LEA、SHL执行后,那些影响CF的值?
SHL
59、设AL=0A8H,CL=23H,执行乘法指令MULCL后,标志位OF,CF的值分别是什么?
OF=1,CF=1
60、执行INC指令要影响那些标志位?
OF,AF,PF,SF,ZF
61、执行除法指令后,影响的标志位是那些?
AF,CF,OF,PF,SF,ZF都不确定
62、假设(AL)=0FFH依次执行ADDAL,0FH指令后,标志位ZF和SF的状态分别是什么?
0,0(CF与AF置1,其他不变)
63、当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,意义是什么?
表示结果中低八位含1的个数为偶数
64、完成将累加器AL清零,并使进位标志CF清零,可以使用些什么指令?
ANDAL,00HXORAL,ALSUBAL,AL
65、SAL指令在左移后,如果移位前后符号位有变化,那个标志位一定改变?
那个标志位一定置1?
SF一定改变,OF一定为1
66、表示加法结果溢出的标志寄存器是什么?
允许产生中断时,IF等于什么?
OF,1
67、执行DIVCL后余数在什么寄存器中?
AH
68、设AL=57H,BL=24H,执行指令SUBAL,BL后,寄存器内容情况如何?
AL=33H,BL=24H
69、设CL=8,AL=0C8H,执行SARAL,CL后,AL中的数据是什么?
FFH
70、假设执行指令前BX=5678H,CL=8,指令ROLBX,CL执行后BX,CF等于多少?
0,0
71、指令中所用到的操作数可存放于那三个地方?
寄存器,存储器,立即数(在指令中)
72、在移位指令中,用于指定移位位数的操作数只能是什么?
移位位数大于1时用CL
73、CWD的操作是什么?
字扩展为双字
74、执行1号DOS系统功能调用,从键盘输入的字符值要求存放在那一寄存器中?
AL
77、循环指令LOOP产生循环的条件是什么?
CX内的值不为0
78、条件转移指令JZ,其测试条件是什么?
ZF为1
79、条件转移指令JB产生程序转移的条件是什么?
前面存在二个无符号数相减或比较,当小于时转移,其时CF=1,ZF=0
80、设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H指令JMPBX执行后,IP的值是多少?
JMPTABLE[BX]执行后,IP的值又是多少?
1256H,3280H
81、用于表示无符号数大于或等于的条件转移指令是什么?
用于表示带符号数大于或等于的条件转移指令是什么?
JAE,JGE
82、子程序的参数传送方式有那三种?
寄存器、堆栈、存储器数据段(变量)
二、判断题
设数据段中有如下定义语句
DA1DB12H,34H
DA2DW12H,34H
ADRT=100H
判断以下语句是否正确,如果有错,说明错误原因或修改为正确语句。
1、INC100H;错,立即数做目的操作数
2、ADD[CX],BX;错,不能用CX间址
3、POPCS;错,不能写CS
4、ADD[SI],10H;错,类型不清,改为ADDbyteptr[SI],10H
5、MOV200H,CX;错,目的操作数为立即数
6、PUSHCH;错,堆栈操作为字类型,CH改CX
7、CMP300,BL;错,300超过8位二进制数。
另外,如果改为30H仍然是一种特殊错误,必须改为CMPBL,30H
8、JMPWORDPTRBX;错,改为JMPBX
9、MOVDS:
[SI],ES:
[DI];错,从存储器到存储器
10、MOVDI,255H;对,取立即数到存储器
11、LEAAL,BUF;错,类型错,AL改AX
12、DIV1000H;错,立即数不能做除数
13、MOVDA1,AX;错,类型错
14、MOVBX,OFFSETDA1;对,取地址与变量类型无关
15、MOV[BX+BP],BX;BX+BP搭配错,BX+BP改为BX+DI
16、MOVCS,AX;错,不能写CS
17、RCLCX,2;错,移位超过1位要用CL表示
18、POPCS;错,不能写CS
19、PUSHCS;对,可以从CS读
20、PORTEQU2000H;对
PORTEQU30H;错。
重复定义PORT
21、STRlDD'ABCD';错,DD后如果是字符要按16位16位写,上面改为'AB','CD'
22、PUSH[20H+SI+BX];对,相对基址变址
23、PORTEQUAFH;错,A前要加0
24、CONTEQU035;错,35前不能用0
25、STR2DW'ABCD';错,溢出
26、PORT1EQUAL;对,port1代表AL
MOVPORT1,300;错。
movport1,300值超出范围,port1代表AL,只8位
27、MOVAH,300;错,300超过8位
28、PORT2=AL;错,等号后要用数字
29、MOVBYTEPTRDA2+1,AX;错,类型错
30、LEABL,DA1[SI];类型错
31、LDSDI,DA1[BX];偏题,取偏移地址到DI,再取其段地址到DS错,8086不用
32、XCHGAL,OFH;错,向立即数存入
33、XCHG[SI],[DI];错,从存储器到存储器
34、MOVDA1+1,AX;错,类型错
35、MOVADRT[SI],AX;对,目的操作数是相对寻址
36、MOVWORDPTR[ADRT],AX;同上是一种特殊错误,目的操作数不能用立即寻址
37、XCHGAX,DS;错,交换指令中不能使用段寄存器
38、MOVWORDPTR[1000H],AX;一种特殊错误,目的操作数不能用默认段地址的直接寻址。
如果是:
MOVDS:
[1000H],AX正确
39、OUT283,AX;错,端口地址超过255时,要使用DX
三、程序分析题
1、已知AX=1234H
MOVBX,AX
NOTBX
XORBX,AX
上述程序段执行后,BX等于什么?
如把XOR指令改为OR指令,那么程序段执行后,BX等于什么?
FFFFH,FFFFH
2、已知(AX)=FFFFH
MOVDX,01
STC
ADCDX,AX
ANDAL,0DH
上述程序段执行后,(AX)等于什么?
(DX)等于什么?
0B04H,1H
3、阅读下列程序段,程序段每一句运行后,AX如何变化?
CF如何变化?
MOVAX,7452H;(AX)=7452H(CF)=
ADDAL,AH;(AX)=74C6H(CF)=0
DAA;(AX)=7426H(CF)=1
XCHGAH,AL;(AX)=2674H(CF)=
SUBAL,AH;(AX)=264EH(CF)=0
DAS;(AX)=2648H(CF)=0
4、已知AX=7865H,BX=89AAH.阅读下列程序段,程序段运行后AX等于什么?
BX等于什么?
CF等于什么?
CLC;(AX)=7865H(BX)=89AAH(CF)=0
ADDAX,BX;(AX)=020FH(BX)=89AAH(CF)=1
ORBX,AX;(AX)=020FH(BX)=8BAFH(CF)=0
RCRAX,1;(AX)=0107H(BX)=8BAFH(CF)=1
RCLBX,1;(AX)=0107H(BX)=175FH(CF)=1
5、VAR1DB56H,76H,87H,98H,0A9H
┇
MOVCX,WORDPTRVAR1;(BX)=0H(CX)=7656H
ANDCX,0AH;(BX)=0H(CX)=2H
MOVBX,WORDPTRVAR1+3;(BX)=A998H(CX)=2H
SARBX,CL;(BX)=EA66H(CX)=2H
程序段运行后,BX等于什么?
CX等于什么?
6、
DA1DB12H
DA2DB22H
RESDB?
┇
MOVAL,DA1
CMPAL,DA2
JAEL1
MOVRES,0
JMPNEXT
L1:
MOVRES,0FFH
NEXT:
……
上述程序段运行后,(RES)等于什么?
ZF等于什么?
(RES)=0(ZF)=0
7、DATASEGMENT
ORG3040H
YY1DB30H,40H
YY2DW3040H
DATAENDS
┇
MOVBX,OFFSETYY1
MOVAX,[BX]
MOVCL,BYTEPTRYY2+1
MOVCH,TYPEYY2
上述程序段运行后,AX等于什么?
BX等于什么?
CX等于什么?
BX:
3040HAX:
4030HCX:
0230H
8、已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么?
MOVCX,10
LEABX,BUF
K2:
MOVAL,[BX]
CMPAL,‘Z’
JBEK1
SUBAL,20H
MOV[BX],AL
K1:
INCBX
LOOPK2
┇
全部小写字母变大写放回原处
9、ADW1234H
BDW5678H
:
PUSHA
PUSHB
POPA
POPB
试回答:
A.上述程序段执行后(A)等于什么?
(B)等于什么?
B.设执行前SP=2000H,执行后SP等于什么?
答案:
A.(A)=5678H(B)=1234H
B.SP=2000H
四、(写程序段)
1、求以二进制形式显示BL中的字符的ASCII码的程序段
MOVCL,8
NEXT:
MOVDL,0
SALBL,1
RCLDL,1
ADDDL,30H
MOVAH,2
INT21H
DECCL
JNENEXT
LEADX,C
MOVAH,9
INT21H
2、DI中存放一个数据区的末地址,求将AX中的二进制数转换为十进制数并放到该数据区中的程序段。
MOVBX,10;准备除以10
CHANGE10:
MOVDX,0;将除数的高16位(在DX中)清0,DX也将用来存放余数
DIVBX;DX,AX除以BX(BX=10)
ADDDL,30H;余数变为ASCII码值
MOVBYTEPTR[DI],DL;存储十进制数
DECDI;到上一单元
CMPAX,0;是否为0?
JNZCHANGE10;不为0转CHANGE10
3、BUF中存放若干ASCII码表示的十进制数,数字的个数存放在COUNT中,求将该数转换为二进制数并放到DX中的程序段。
MOVSI,OFFSETBUF;将BUF的地址放到SI中
MOVDX,0;清DX为0;
MOVCX,COUNT;置循环次数为COUNT
MOVBX,10
GET_ASC:
MOVAL,[SI];取出一个字符
SUBAL,30H;减30H变二进制数
MOVAH,0
PUSHAX;转换为对应的数并置于AX中,转存堆栈
MOVAX,DX
MULBX;AX内容乘10
MOVDX,AX
POPAX
ADDDX,AX;(DX)←(DX)*10+(AX)
INCSI;使指针SI指向下一个字符
DECCX
JNZGET_ASC
4、DI中存放一个数据区的末地址,求将AX中的二进制数转换为十六进制数并放到该数据区中的程序段。
MOVBX,16;准备除以16
CHANGE10:
MOVDX,0;将除数的高16位(在DX中)清0,DX也将用来存放余数
DIVBX;DX,AX除以BX(BX=16)
ADDDL,30H;余数变为ASCII码值
MOVBYTEPTR[DI],DL;存储十六进制数
DECDI;到上一单元
CMPAX,0;是否为0?
JNZCHANGE10;不为0转CHANGE10
5、求以移位方式显示SI中的一个16进制数的程序段
MOVBX,4;每个字显示4个16进制字符
CHANGE10:
MOVDX,SI
MOVCX,4;准备左移4位(除以16)
RORDX
MOVSI,DX
ADDDL,30H;一个16进制数变为ASCII码值
CMP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1106 复习题 参考答案