机械原理2Word文件下载.docx
《机械原理2Word文件下载.docx》由会员分享,可在线阅读,更多相关《机械原理2Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
(A)1234H(B)3412H(C)1000H(D)0010H
19.若(AL)=80H,执行NEGAL指令后,CF和OF标志位的状态分别为(D)。
(A)0和0(B)0和1(C)1和0(D)1和1
20.若要完成(AX)*7/2运算,则在下列四条指令之后添加()指令。
MOVBX,AX;
MOVCL,3;
SALAX,CL;
SUBAX,BX(C)。
(A)RORAX,1(B)SALAX,1(C)SARAX,1(D)DIVAX,2
21.乘法指令中的两个操作数,其中有一个操作数隐含在(A )
A、AL或AX中B、BL或BX中C、CL或CX中D、DL或DX中
22.查表指令XLAT规定,待查表的首址应存入(D)中。
(A)BP(B)SI(C)DI(D)BX
23.将要取的某一条指令的偏移地址由(D)提供。
(A)SI(B)BP(C)SP(D)IP
24.寄存器间接寻址方式中,操作数在(C)中。
(A)通用寄存器(B)堆栈(C)主存单元(D)段寄存器
25.运算型指令的寻址和转移型指令的寻址,其不同点在于(A)。
(A)前者取操作数,后者决定程序的转移地址
(B)后者取操作数,前者决定程序的转移地址
(C)两者都是取操作数(D)两者都是决定程序的转移地址
26.JMPWORDPTR[DI]是(A)。
(A)段内间接转移(B)段间间接转移(C)段内直接转移(D)段间直接转移
27.INC指令不影响(B)标志。
(A)OF(B)CF(C)SF(D)ZF
28.逻辑移位指令SHL用于(C)。
(A)带符号数乘2(B)带符号数除2(C)无符号数乘2(D)无符号数除2
29.算术移位指令SAR用于(B)。
30.下列指令中,有语法错误的是(D)。
(A)MOV[SI],AX(B)INAL,DX
(C)XORAX,1234H(D)OUT210H,AL
31.在下列伪指令中定义字变量的是(B)。
(A)DD(B)DW(C)DQ(D)DT
32.下列指令中,能使AL的内容固定为偶数的是(C)。
(A)ADDAL,01H(B)ORAL,0FEH(C)ANDAL,0FEH(D)XORAL,0FEH
33.改变(C)寄存器的值,可改变堆栈中栈顶元素的位置。
(A)BP(B)IP(C)SP(D)BX
34.加减类运算指令对标志位的状态(B)。
(A)有影响(B)部分影响(C)无影响(D)任意
35.当AH=(B)时,执行INT21H指令可在屏幕上显示一组字符。
(A)01H(B)02H(C)09H(D)0AH
36.已知VARDW1,2,$+2,5,6若汇编时VAR分配的偏移地址是2010,则汇编后2014H单元的内容是(D)。
(A)6H(B)14H(C)5H(D)16H
37.若某数据段位于存储区68000H~7FFFFH,则该数据段的段基址是(D)。
(A)68000H(B)7FFFFH(C)6000H(D)6800H
38.SP的作用是用来指示(A)。
(A)栈顶元素的有效地址(B)下一条要执行指令的地址
(C)下一条要取的指令的地址(D)栈底元素的有效地址
39.在数据传送指令执行过程中,不能直接与立即数进行传送的是(B)。
(A)通用寄存器(B)段寄存器(C)存储器(D)通用寄存器和存储器
40.转移类指令对标志位的状态(C)。
(A)有影响(B)部分影响(C)无影响(D)随意
41.欲从存储单元取某操作数,可采用(D)。
(A)寄存器寻址、寄存器间接寻址(B)立即寻址、直接寻址
(C)立即寻址、寄存器间接寻址(D)寄存器间接寻址、直接寻址
42.在指令MOVAX,0执行后,CPU状态标志位ZF的取值(D)。
(A)为0(B)为1(C)不确定(D)不改变
43.已知AL=10010111H,BL=00010101H,执行ADDAL,BL指令后,OF、SF、CF、ZF标志的状态为(B)。
(A)1、0、1、1(B)0、1、0、0(C)0、0、1、1(D)0、1、0、1
44.下列指令中,错误的是(C)。
(A)MOVBX,OFFSETBUF(B)LEASI,BUF
(C)LEADI,OFFSETBUF(D)MOVBP,SEGBUF
45.输入/输出指令对标志位的状态(C)。
(A)有影响(B)部分影响(C)无影响(D)任意
46.下列描述正确的是(B)。
(A)汇编语言仅由指令性语句组成
(B)汇编语言包括指令性语句和伪指令语句
(C)指令性语句和伪指令语句的格式是完全相同的
(D)指令性语句和伪指令语句需经汇编程序翻译成机器代码后才能执行
47.下列指令中不属于逻辑运算指令的是(B)。
(A)XOR(B)CWD(C)NOT(D)OR
48.假定DX=10111001B,CL=3,CF=1,则执行指令SHLDX,CL后,DX的值为(D)。
(A)005CH(B)0017H(C)1700H(D)05C8H
49.下列指令中不会改变指令指针寄存器内容的是(A)。
(A)MOV(B)JMP(C)CALL(D)RET
50.伪指令ENDP告诉汇编程序(B)。
(A)宏定义结束(B)过程定义结束
(C)段定义结束(D)过程运行结束
51.利用DOS系统功能调用的9号(AH=9)功能,显示一个字符串,其入口参数应为(A)。
(A)DS:
DX=字符串首地址(B)DS:
DX=字符串末地址
(C)CS:
DX=字符串首地址(D)CS:
52.在下列伪指令中定义双字变量的是(C)。
(A)DB(B)DW(C)DD(D)DT
53、下列指令错误的是(A)
A、OUTAX,2233HB、MOVBX,[BP]C、INAX,0F0HD、MOVAX,ES:
[BX]
54、把累加器AX中的低八位取反,下面的哪一条指令可以实现(D)
A、ANDAX,0FFHB、ANDAX,00FFHC、ORAX,0FFHD、XORAX,00FFH
55、MOVCX,2[BX][DI]的源操作数的物理地址是(A)
A、16*(DS)+(BX)+(SI)+2B、16*(ES)+(BX)+(SI)+2
C、16*(SS)+(BX)+(SI)+2D、16*(CS)+(BX)+(SI)+2
56、假定CS=2000H,IP=0100H,DS=1000H,BX=300H,(10300H)=400H,(10302H)=500H,执行指令JMP[BX]后,程序转到CS:
IP=( B)去执行。
A、500:
400HB、2000:
400HC、2000:
300HD、500:
300H
57、已知:
SS=2000H,BP=0300H,SI=0100H,(20400H)=1122H,(20402H)=3344H,(20404H)=5566H,执行指令MOVAX,2[BP+SI]后,AX的内容是(C)
A、1122HB、3322HC、3344HD、4455H
二、判断题
1.指令MOVAX,[BX]的源操作数是寄存器寻址方式。
(×
)
2.对堆栈区的操作必须遵循先进先出的原则。
3.比较两个带符号数的大小,可根据CF标志来判断。
4.逻辑操作符AND,OR,XOR和NOT,只能用于数字表达式。
5.不能给段寄存器赋立即数。
(√)
6.OF位可用来表示有符号数的溢出。
7.无条件转移指令只能用于段内直接转移。
8.MOVAX,[BP]的源操作数的物理地址为16*(DS)+(BP)。
9.指令MOVDI,OFFSET[BX][SI]是正确的。
10.指令MOVCS,BX是非法的。
11.指令NOTAX,BX是合法的。
12.MOV[BX][BP],AX是对的。
13.80486中对堆栈单元的存取操作是以字节为单位的。
14.JMP指令要影响标志位。
15.INC指令影响所有状态标志。
16.欲交换寄存器SI,DI的内容,可用指令XCHGSI,DI实现。
17.CPU中的程序计数器IP中存放的是指令的逻辑地址。
18.两个符号相同的数相减不会产生溢出。
19.汇编程序就是汇编语言程序。
20.相对寻址中的位移量只能用16位表示。
21.CLD指令是MOVSB指令的使用条件之一。
22.段寄存器间不能直接进行数据传送。
23.要把变量BUFF的有效地址送给BX,可用MOVBX,BUFF指令。
24.当对堆栈段的数据进行操作时,其操作数的有效地址可保存在BP中。
25.TEST指令属于逻辑运算指令。
26.CS和IP都不能作传送指令的目的操作数。
三、填空题
1.若SS=5310H,SP=0E30H,其物理地址为53f30h。
2.若CH=07H,CL=08H,执行指令ADDCH,CL后,AF=0,CF=0,OF=0,PF=1。
3.指令由操作码和操作数两个字段构成。
4.条件转移指令JNE的测试条件是ZF=0。
5.若用指针(BP)访问存储器,则数据包含在堆栈段中。
6.若AX=1234H,SP=1000H,指令PUSHAX执行后AX=1234H,SP=0FFEH。
7.指令采用立即数寻址方式时操作数是在代码段中。
四、程序
1.编写汇编程序实现如下函数,并画出程序流程图。
Y=
2.分析下列程序段,说出其功能。
MOVAX,1000H
MOVDS,AX
MOVES,AX
MOVSI,0100H
MOVDI,0200H
MOVCX,50D
CLD
REPMOVSB
将从1000H段的偏移地址为100H的单元开始连续传送50字节到本段的200H开始的50单元
3.写出下列程序段的功能
MOVBX,2000H
MOVDS,BX
XORAL,AL
MOVCX,100
AGAIN:
MOV[BX],AL
INCBX
LOOPAGAIN
将从数据段2000:
2000H单元开始连续存放100个数据0-63H
4.写出下列程序段的功能
LEASI,BUFFER
LEADI,ARRAY
XORBL,BL
LP:
CMP[SI],01H
JNZLP1
INCBL
LP1:
INCSI
LOOPLP
MOV[DI],BL
检查数据段以BUFFER单元开始连续100个字节1的个数,并把结果送到ARRAY单元中。
5.写出下列程序段的功能
MOVCX,16
MOVAX,N
MOVBH,0
LP0:
SHLAX,1
JCLP
INCBH
LOOPLP0
MOVSUM,BH
检查N(16位数)中0的个数,并把结果送到SUM单元中。
6.写出下列程序段的功能
MOVAL,N
ANDN,0FH
MOVBL,N
SHRAL,4
MOVBH,AL
将N(8位数)由压缩BCD码变成非压缩BCD码
7.执行下列程序段后,AX=?
MOVAX,0702H
MOVBH,09H
AAD
DIVBH
AX=0008H
8.下面程序段执行后AL=?
ABCDW2152H,3416H,5731H,4684H
MOVBX,OFFSETABC
MOVAL,3
XLAT
AL=34H
9.执行下面的程序段后AX=?
MOVCX,5
MOVAX,50
NEXT:
SUBAX,CX
LOOPNEXT
HLT
AX=50-5-4-3-2-1=35
10.执行下面的程序段后AX=?
TABDW1,2,3,4,5,6
ENTRYEQU6
MOVBX,OFFSETTAB
ADDBX,ENTRY
MOVAX,[BX]
AX=0004H
11.执行下面程序段后AX=
ARRAYDW1,2,3,4,5,6,7,8,9,10
COUNTEQU$-ARRAY
XORAX,AX
MOVCX,COUNT
MOVSI,OFFSETARRAY
ADDAX,[SI]
AX=
12.写出下列程序段的功能
MOVAH,1
INT21H
ANDAL,0FH
MOVBL,AL
SHLAL,4
ANDAL,BL
将从键盘接受到的两个字符拼在一起
13.执行下列程序段后
NDB07H
XORBH,BH
RCLBL,1
ADDBH,BL
XORBH,0FFH
寄存器BH的值是F1H,寄存器BL的值是0EH。
14.分析下列程序段
XORAH,AH
MOVCL,4
DIVCL
当N=3CH时,程序执行完后AX=00001111B
15.程序段如下:
CLC
MOVAL,6
MOVBL,9
ADDAL,BL
DAA
执行上面程序段后,AL=15H,AF=1,BL=0FH
16.执行下列指令后
TABLEDB19H,55H,9CH
LEABX,TABLE
MOVAL,[BX]
XORAL,89H
MOV[BX],AL
寄存器AL的值是90H
17.分析下列程序段,说明该程序段执行何种功能。
MOVCX,10
MOVDL,30H
NEXT1:
MOVAH,2
INCDL
LOOPNEXT1
显示0-9十个字符
18.执行下列指令后
MOVAX,1245H
MOVBX,5689H
MOVCL,AL
MOVAL,AH
ADCAL,BH
寄存器AL的值是68H,寄存器CL的值是0CEH
19.分析下列程序段:
MOVAL,N
XORAH,AH
MOVBL,16
DIVBL
当N=57H时,程序执行完后AX=?
0705H
20.在下面程序的括号中分别填入如下指令:
①LOOPXH②LOOPNEXH③LOOPEXH
问在这三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器中的内容分别是什么?
START:
MOVAX,04
MOVBX,02
MOVCX,03
MOVDX,05
XH:
INCAX
ADDBX,AX
SHRDX,1
()
1LOOPXH
AX=7、BX=20、CX=0、DX=0
2LOOPNEXH
3LOOPEXH
AX=5、BX=7、CX=2、DX=2
21.阅读程序,请说出该程序的功能是什么?
MOVAX,DATA
MOVAL,[SI]
TESTAL,1
JNZNEXT
INCBL
INCSI
检测数据段BUFFER开始的100个单元偶数的个数。
22.从键盘上接收一字符,若是“Y”转YES,是“N”转NO,否则继续等待,到输入“Y”或“N”为止。
程序段如下:
ADDAL,90H
ADCAL,40H
MOVRUT,AL
问:
①若N=5,下列程序执行后AL=8AH?
②该程序段的功能是什么?
23.执行下列程序段后:
DATASEGMENT
DT1LABLEWORD
DT2DB12H,34H
DATAENDS
………………
MOVAL,DT2
MOVDX,DT1
寄存器AL的值是①,寄存器DX的值是②。
AL=12H,DX=
24.读下列程序,请说出该程序的功能是什么?
SUMDW0
STACKSEGMENT
DB200DUP(?
STACKENDS
CODESEGMENT
ASSUMEDS:
DATA,SS:
STACK,CS:
CODE
MOVAX,DATA
MOVCX,50
MOVAX,0
MOVBX,1
ADDAX,BX
DECCX
JNENEXT
MOVSUM,AX
MOVAH,4CH
CODEENDS
ENDSTART
从1开始连续50个奇数之和,并把结果送到SUM单元。
25.设伪指令定义如下,请画出内存分配示意图。
BUFDB?
DW‘AB’
DW‘C’
DW1234H
DB‘EF’
26.执行下列程序段后:
DT1DW8A9BH
DT2DB7CH,6DH
┇
┇
MOVAX,DT1
MOVBX,OFFSETDT1
MOVSI,OFFSETDT2
寄存器BX的值是①,寄存器SI的值是②。
BX=0000H,SI=0002H
27.执行下列指令后:
TABLEDB10H,33H,41H
┉┉
MOVBX,OFFSETTABLE
XORAL,80H
寄存器AL的值是多少?
AL=90H
28.执行下列程序段后:
N1DW3355H
N2DB23H,89H
┇
MOVAX,N1
MOVDI,OFFSETN1
MOVBP,OFFSETN2
寄存器DI的值是多少?
寄存器BP的值是多少?
DI=0000H,BP=0002H
29.执行下列指令后:
DATDB10H,33H,41H
LEABX,DAT
MOVAX,SEGDAT
MOVAL,ES:
MOVES:
[BX],AL
30.执行下列程序段后:
BUFDB01H
……
MOVAL,BUF
SALAL,1
XORAL,0FFH
寄存器BL的值是多少?
AL=0FCH,BL=01H
五.程序填空
1.下列程序是在键盘上输入120个字符,然后将输入反序后显示在屏幕上。
请将程序填写完整。
STACK1SEGMENT
STPDW120DUP