滁州学院微机原理期末考试之指令系统及汇编语言程序设计习题及答案_第1页
滁州学院微机原理期末考试之指令系统及汇编语言程序设计习题及答案_第2页
滁州学院微机原理期末考试之指令系统及汇编语言程序设计习题及答案_第3页
滁州学院微机原理期末考试之指令系统及汇编语言程序设计习题及答案_第4页
滁州学院微机原理期末考试之指令系统及汇编语言程序设计习题及答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2部分指令系统及汇编语言程序设计一.选择题

1.指令ADDCX,55H[BP]的源操作数的寻址方式是(C)。

(A)寄存器寻址(B)直接寻址(C)寄存器间接寻址(D)寄存器相对寻址

2.设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=()。

(A)113AH(B)114AH(C)1144H(D)1140H

3.若SI=0053H,BP=0054H,执行SUBSI,BP后,则()。

(A)CF=0,OF=0(B)CF=0,OF=1(C)CF=1,OF=0(D)CF=1,OF=1

4.已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOVBX,[BP]执行后,(BX)=()。

(A)0102H(B)0201H(C)245AH(D)5A24H

5.实模式下80486CPU对指令的寻址由()决定。

(A)CS,IP(B)DS,IP(C)SS,IP(D)ES,IP

6.使用80486汇编语言的伪操作指令定义:VALDB2DUP(1,2,3DUP(3),2DUP(1,0))则在VAL存储区内前十个字节单元的数据是()。

(A)1,2,3,3,2,1,0,1,2,3(B)1,2,3,3,3,3,2,1,0,1

(C)2,1,2,3,3,2,1,0(D)1,2,3,3,3,1,0,1,0,1

7.下列四条指令都可用来使累加器清"0",但其中不能清"进位"位的是()。

(A)XORAL,AL(B)ANDAL,0(C)MOVAL,0(D)SUBAL,AL

8.若(AX)=96H,(BX)=65H,依次执行ADDAX,BX指令和DAA指令后,(AL)=()。

(A)0FBH(B)01H(C)61H(D)0BH

9.下列能使CF标志置1的指令是()。

(A)CMC(B)CLC(C)STC(D)CLD

10.MOVAX,[BP+SI]隐含使用的段寄存器是()。

(A)CS(B)DS(C)ES(D)SS

11.设AL=7FH,要使AL=80H,应使用下列哪一条指令()。

(A)ANDAL,80H(B)ORAL,80H(C)XORAL,80H(D)NOTAL

12.在执行十进制调整指令DAA,DAS之前必须将结果存放于()中。

(A)AX(B)AH(C)AL(D)BL

13.下列指令执行后影响标志位的是()。

(A)MOV(B)PUSH(C)ADD(D)XCHG

14.唯一能对应存储单元的地址是()。

(A)物理地址(B)端口地址(C)有效地址(D)逻辑地址

15.计算机能直接执行的语言是(A)。

(A)机器语言(B)汇编语言(C)高级语言(D)程序设计语言

16.需采用先进后出原则操作的存储区是()。

(A)寄存器组(B)地址缓冲器(C)数据寄存器(D)堆栈区

17.寄存器SP用于对()的操作。

(A)空闲单元(B)堆栈单元(C)数据单元(D)指令单元

18.若(BX)=1000H,(DS)=2000H,(21000H)=12H,(21001H)=34H,执行LEASI,[BX]指令后,SI寄存器的内容是()。

(A)1234H(B)3412H(C)1000H(D)0010H

19.若(AL)=80H,执行NEGAL指令后,CF和OF标志位的状态分别为()。

(A)0和0(B)0和1(C)1和0(D)1和1

20.若要完成(AX)*7/2运算,则在下列四条指令之后添加()指令。MOVBX,AX;MOVCL,3;SALAX,CL;SUBAX,BX()。

(A)RORAX,1(B)SALAX,1(C)SARAX,1(D)DIVAX,2

21.在保护模式下,代码段的段基址存在于()中。

(A)段选择符(B)指令指针寄存器(C)段寄存器(D)段描述符

22.查表指令XLAT规定,待查表的首址应存入()中。

(A)BP(B)SI(C)DI(D)BX

23.将要取的某一条指令的偏移地址由()提供。

(A)SI(B)BP(C)SP(D)IP

24.寄存器间接寻址方式中,操作数在()中。

(A)通用寄存器(B)堆栈(C)主存单元(D)段寄存器

25.运算型指令的寻址和转移型指令的寻址,其不同点在于()。

(A)前者取操作数,后者决定程序的转移地址

(B)后者取操作数,前者决定程序的转移地址

(C)两者都是取操作数(D)两者都是决定程序的转移地址

26.JMPWORDPTR[DI]是()。

(A)段内间接转移(B)段间间接转移(C)段内直接转移(D)段间直接转移

27.INC指令不影响()标志。

(A)OF(B)CF(C)SF(D)ZF

28.逻辑移位指令SHL用于()。

(A)带符号数乘2(B)带符号数除2(C)无符号数乘2(D)无符号数除2

29.算术移位指令SAR用于()。

(A)带符号数乘2(B)带符号数除2(C)无符号数乘2(D)无符号数除2

30.下列指令中,有语法错误的是()。

(A)MOV[SI],AX(B)INAL,DX

(C)XORAX,1234H(D)OUT210H,AL

31.在下列伪指令中定义字变量的是()。

(A)DD(B)DW(C)DQ(D)DT

32.下列指令中,能使AL的内容固定为偶数的是()。

(A)ADDAL,01H(B)ORAL,0FEH(C)ANDAL,0FEH(D)XORAL,0FEH

33.改变()寄存器的值,可改变堆栈中栈顶元素的位置。

(A)BP(B)IP(C)SP(D)BX

34.加减类运算指令对标志位的状态()。

(A)有影响(B)部分影响(C)无影响(D)任意

35.当AH=()时,执行INT21H指令可在屏幕上显示一组字符。

(A)01H(B)02H(C)09H(D)0AH

36.已知VARDW1,2,$+2,5,6若汇编时VAR分配的偏移地址是2010和,则汇编后2014H单元的内容是()。

(A)6H(B)14H(C)5H(D)16H

37.若某数据段位于存储区68000H~7FFFFH,则该数据段的段基址是()。

(A)68000H(B)7FFFFH(C)6000H(D)6800H

38.SP的作用是用来指示()。

(A)栈顶元素的有效地址(B)下一条要执行指令的地址

(C)下一条要取的指令的地址(D)栈底元素的有效地址

39.在数据传送指令执行过程中,不能直接与立即数进行传送的是()。

(A)通用寄存器(B)段寄存器(C)存储器(D)通用寄存器和存储器

40.转移类指令对标志位的状态()。

(A)有影响(B)部分影响(C)无影响(D)随意

41.欲从存储单元取某操作数,可采用()。

(A)寄存器寻址、寄存器间接寻址(B)立即寻址、直接寻址

(C)立即寻址、寄存器间接寻址(D)寄存器间接寻址、直接寻址

42.在指令MOVAX,0执行后,CPU状态标志位ZF的取值()。

(A)为0(B)为1(C)不确定(D)不改变

43.已知AL=10010111H,BL=00010101H,执行ADDAL,BL指令后,OF、SF、CF、ZF标志的状态为()。

(A)1、0、1、1(B)1、1、0、0(C)0、0、1、1(D)0、1、0、1

44.下列指令中,错误的是()。

(A)MOVBX,OFFSETBUF(B)LEASI,BUF

(C)LEADI,OFFSETBUF(D)MOVBP,SEGBUF

45.输入/输出指令对标志位的状态()。

(A)有影响(B)部分影响(C)无影响(D)任意

46.下列描述正确的是()。

(A)汇编语言仅由指令性语句组成

(B)汇编语言包括指令性语句和伪指令语句

(C)指令性语句和伪指令语句的格式是完全相同的

(D)指令性语句和伪指令语句需经汇编程序翻译成机器代码后才能执行

47.下列指令中不属于逻辑运算指令的是()。

(A)XOR(B)CWD(C)NOT(D)OR

48.假定DX=10111001B,CL=3,CF=1,则执行指令SHLDX,CL后,DX的值为()。

(A)005CH(B)0017H(C)1700H(D)05C8H

49.下列指令中不会改变指令指针寄存器内容的是()。

(A)MOV(B)JMP(C)CALL(D)RET

50.伪指令ENDP告诉汇编程序()。

(A)宏定义结束(B)过程定义结束

(C)段定义结束(D)过程运行结束

51.利用DOS系统功能调用的9号(AH=9)功能,显示一个字符串,其入口参数应为()。

(A)DS:DX=字符串首地址(B)DS:DX=字符串末地址

(C)CS:DX=字符串首地址(D)CS:DX=字符串末地址

52.在下列伪指令中定义双字变量的是()。

(A)DB(B)DW(C)DD(D)DT

二、判断题

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,其物理地址为()。

2.若CH=07H,CL=08H,执行指令ADDCH,CL后,AF=(),CF=(),OF=(),PF=()。

3.指令由()和()两个字段构成。

4.条件转移指令JNE的测试条件是()。

5.若用指针(BP)访问存储器,则数据包含在()段中。

6.若AX=1234H,SP=1000H,指令PUSHAX执行后AX=(),SP=()。

7.指令采用()寻址方式时操作数是在代码段中。

四、阅读程序

1.程序中数据定义如下:

DATA1DW?

DATA2DB32DUP(?)

DATA3DD?

COUNTEQU$-DATA1

此时COUNT的值是()。

2.分析下列程序段,说出其功能。MOVAX,1000H

MOVDS,AX

MOVES,AX

MOVSI,0100H

MOVDI,0200H

MOVCX,50D

REPMOVSB

3.写出下列程序段的功能

MOVBX,2000H

MOVDS,BX

XORAL,AL

MOVCX,100

AGAIN:MOV[BX],AL

INCBX

LOOPAGAIN

4.写出下列程序段的功能

LEASI,BUFFER

LEADI,ARRAY

MOVCX,100

XORBL,BL

LP:CMP[SI],01H

JNZLP1

INCBL

LP1:INCSI

LOOPLP

MOV[DI],BL

5.写出下列程序段的功能

MOVCX,16

MOVAX,N

MOVBH,0

LP0:SHLAX,1

JCLP

INCBH

LP:LOOPLP0

MOVSUM,BH

6.写出下列程序段的功能

MOVAL,N

ANDN,0FH

MOVBL,N

SHRAL,4

MOVBH,AL

7.执行下列程序段后,AX=?

MOVAX,0702H

MOVBH,09H

AAD

DIVBH

8.下面程序段执行后AL=?

ABCDW2152H,3416H,5731H,4684H

MOVBX,OFFSETABC

MOVAL,3

XLAT

9.执行下面的程序段后AX=?

MOVCX,5

MOVAX,50

NEXT:SUBAX,CX

LOOPNEXT

HLT

10.执行下面的程序段后AX=?

TABDW1,2,3,4,5,6

ENTRYEQU6

MOVBX,OFFSETTAB

ADDBX,ENTRY

MOVAX,[BX]

11.执行下面程序段后AX=

ARRAYDW1,2,3,4,5,6,7,8,9,10

COUNTEQU$-ARRAY

XORAX,AX

MOVCX,COUNT

MOVSI,OFFSETARRAY

NEXT:ADDAX,[SI]

INCSI

LOOPNEXT

12.写出下列程序段的功能

MOVAH,1

INT21H

ANDAL,0FH

MOVBL,AL

MOVAH,1

INT21H

SHLAL,4

ANDAL,BL

将从键盘接受到的两个字符拼在一起

13.执行下列程序段后

NDB07H

XORBH,BH

MOVBL,N

RCLBL,1

ADDBH,BL

XORBH,0FFH

HLT

寄存器BH的值是,寄存器BL的值是。

14.分析下列程序段

MOVAL,N

XORAH,AH

MOVCL,4

DIVCL

当N=3CH时,程序执行完后AX=

15.程序段如下:

CLC

MOVAL,6

MOVBL,9

ADDAL,BL

MOVBL,AL

DAA

执行上面程序段后,AL=,AF=,BL=

16.执行下列指令后

TABLEDB19H,55H,9CH

LEABX,TABLE

MOVAL,[BX]

XORAL,89H

MOV[BX],AL

寄存器AL的值是

17.分析下列程序段,说明该程序段执行何种功能。

MOVCX,10

MOVDL,30H

NEXT1:MOVAH,2

INT21H

INCDL

LOOPNEXT1

18.执行下列指令后

MOVAX,1245H

MOVBX,5689H

ADDAL,BL

MOVCL,AL

MOVAL,AH

ADCAL,BH

DAA

寄存器AL的值是,寄存器CL的值是

19.分析下列程序段:

MOVAL,N

XORAH,AH

MOVBL,16

DIVBL

当N=57H时,程序执行完后AX=?

20.在下面程序的括号中分别填入如下指令:

①LOOPXH②LOOPNEXH③LOOPEXH

问在这三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器中的内容分别是什么?

START:MOVAX,04

MOVBX,02

MOVCX,03

MOVDX,05

XH:INCAX

ADDBX,AX

SHRDX,1

()

HLT

21.阅读程序,请说出该程序的功能是什么?

MOVAX,DATA

MOVDS,AX

LEASI,BUFFER

XORBL,BL

MOVCX,100

AGAIN:MOVAL,[SI]

TESTAL,1

JNZNEXT

INCBL

NEXT:INCSI

LOOPAGAIN

HLT

22.从键盘上接收一字符,若是“Y”转YES,是“N”转NO,否则继续等待,到输入“Y”或“N”为止。

程序段如下:

MOVAL,N

ANDAL,0FH

ADDAL,90H

DAA

ADCAL,40H

MOVRUT,AL

HLT

问:①若N=5,下列程序执行后AL=?②该程序段的功能是什么?

23.执行下列程序段后:

DATASEGMENT

DT1LABLEWORD

DT2DB12H,34H

DATAENDS

………………

MOVAL,DT2

MOVDX,DT1

寄存器AL的值是①,寄存器DX的值是②。

24.读下列程序,请说出该程序的功能是什么?

DATASEGMENT

SUMDW0

DATAENDS

STACKSEGMENT

DB200DUP(?)

STACKENDS

CODESEGMENT

ASSUMEDS:DATA,SS:STACK,CS:CODE

START:MOVAX,DATA

MOVDS,AX

MOVCX,50

MOVAX,0

MOVBX,1

NEXT:ADDAX,BX

INCBX

INCBX

DECCX

JNENEXT

MOVSUM,AX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

25.设伪指令定义如下,请画出内存分配示意图。

BUFDB?

DW‘AB’

DW‘C’

DW1234H

DB‘EF’

26.执行下列程序段后:

DATASEGMENT

DT1DW8A9BH

DT2DB7CH,6DH

DATAENDS

MOVAX,DT1

MOVBX,OFFSETDT1

MOVSI,OFFSETDT2

寄存器BX的值是①,寄存器SI的值是②。

27.执行下列指令后:

TABLEDB10H,33H,41H

┉┉

MOVBX,OFFSETTABLE

MOVAL,[BX]

XORAL,80H

MOV[BX],AL

寄存器AL的值是多少?

28.执行下列程序段后:

DATASEGMENT

N1DW3355H

N2DB23H,89H

DATAENDS

MOVAX,N1

MOVDI,OFFSETN1

MOVBP,OFFSETN2

寄存器DI的值是多少?寄存器BP的值是多少?

29.执行下列指令后:

DATDB10H,33H,41H

┉┉

LEABX,DAT

MOVAX,SEGDAT

MOVES,AX

MOVAL,ES:[BX]

XORAL,80H

MOVES:[BX],AL

寄存器AL的值是多少?

30.执行下列程序段后:

BUFDB01H

……

XORAL,AL

MOVAL,BUF

MOVBL,AL

SALAL,1

ADDAL,BL

XORAL,0FFH

HLT

寄存器AL的值是多少?寄存器BL的值是多少?

五.程序填空

1.下列程序是在键盘上输入120个字符,然后将输入反序后显示在屏幕上。请将程序填写完整。

STACK1SEGMENT

STPDW120DUP(?)

STACK1ENDS

CODESEGMENT

ASSUMECS:CODE,SS:STACK1

START:MOVAX,STACK1

MOVSS,AX

MOVSP,SIZESTPMOVCX,120

LOOP1:MOVAH,01H

INT21H

PUSHAX

()

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH

INT21H

MOVCX,120

LOOP2:()

MOVAH,02H

INT21H

LOOPLOOP2

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

六、编写程序

1.在STR到STR+49单元中存放着一个字符串,试编写一个程序,测试字符串中是否存在数字,如有,则把DL的第五位置1,否则将该位置0。

2.试编程实现,从键盘接收N个(N≤60)8位二进制数,统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论