汇编期末考试题目.docx
《汇编期末考试题目.docx》由会员分享,可在线阅读,更多相关《汇编期末考试题目.docx(18页珍藏版)》请在冰点文库上搜索。
汇编期末考试题目
汇编语言2005—2006学年第二学期期末考试复习题及参考答案
一、填空
1.十进制数369转换成二进制数为()2,转换成十六进制数为()16.
2.计算机中的指令由()和(地址码)两部分组成。
3.8086的地址总线有20根,寻址范围为()字节。
4.下一条将要执行的指令的地址存放在寄存器()中。
5.写出IBMPC机的三种子程序返回的指令(RET),(IRET),(IRETD)。
6.汇编语言源程序需经过()程序汇编,()程序连接才能生成可执行文件。
7.存储器某单元的地址表示为2314H:
4132H,则它的偏移地址=(4132),物理地址=()
8.REP指令前缀与()指令配合使用。
9.在显示器上查看和修改内存单元的内容可以使用DEBUG的()和()命令。
10.(AL)=BFH,要求屏蔽第0,1两位,则要执行指令();如果要求第0,1位变反,可使用指令()
11.宏汇编适合于(),()的子功能段使用;
二、选择题
1.设字长N=16,有符号数7AE9H的补码表示为()
A.9EA7HB.76C4HC.8417HD.7AE9H
2.比较有符号数3260H与0B425H的大小关系为()
A.相等B.小于C.大于D.不能比较
3.指令JMPWORDPTR[BX][DI]中转移的目标地址为()
A.16dx(DS)+(BX)+(DI)B.16dx(ES)+(BX)+(DI)
C.16dx(SS)+(BX)+(DI)D.16dx(CS)+(BX)+(DI)
4.在指令MOVAX,[1000H]中,源操作数的寻址方式为()
A.立即寻址B.直接寻址C.段内间接寻址D.寄存器寻址
5.中断矢量表中存放的是()
A.中断类型号B.断点地址C.中断服务程序D.中断服务程序入口地址
6.8086的汇编语言指令系统中的条件转移指令可以使程序转移到()
A.段内的任何地方B.距该指令偏移地址为-32768~+32767的地方
C.距该指令偏移地址为-128~+127的地方.D.段外
7.能定义ASCII码字符串的数据定义语句有()
A.DB,DW,DD,DQ,DTB.DB,DW,DDC.DB,DWD.DB;
8.若(AL)=87H,执行ADDAL,0F5H后,S,Z,C,O,P的状态为()
A.SF=0,ZF=0,CF=1,OF=1,PF=0B.SF=1,ZF=0,CF=1,OF=0,PF=1
C.SF=0,ZF=0,CF=0,OF=1,PF=0D.SF=1,ZF=0,CF=1,OF=1,PF=1
9.比较指令CMP()
A.专用于有符号数比较B.专用于无符号数比较
C.专用于串比较D.不区分比较的对象是有符号数还是无符号数
10.数据传送指令对标志位的影响为()
A.都不影响;B.都影响;
C.除了SAHF,POPF,其它均不影响.D.除了控制标志位,其它均不影响
三、判断题
()31.段间调用的子程序必须由伪操作FAR说明为远过程。
()32.PC机以位作最小寻址单位。
()33.当SRC是立即数时,DST可以使用存储器寻址。
()34.指定各个逻辑段偏移地址可以使用ORG伪指令。
()35.LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。
()36.POPIP
()37.设327FH和0BFFFH为有符号数的补码表示,则327FH<0BFFFH
()38.多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明
()39.MOVAX,VAR1-VAR2+100
()40.ADD[SI],50
四、程序分析题
1.ADW1234H
BDW5678H
PUSHA
PUSHB
POPA
POPB
试回答:
上述程序段执行后(A)=,(B)=
2.分析下面程序段,
MOVAL,200
SARAL,1
MOVBL,AL
MOVCL,2
SARAL,CL
ADDAL,BL
试问程序段执行后(BL)=(AL)=
3.STRINGDB‘ABCDEFGHIJ'
MOVAH,01;从键盘输入字符1~9
INT21H
ANDAL,0FH
DECAL
XORAH,AH
MOVBX,OFFSETSTRING
ADDBX,AX
MOVBL,[BX]
MOVAH,02H;显示输出
INT21H
试回答:
(1)上述程序段的功能是什么?
(2)如从键盘输入字符‘4',程序段有什么结果?
4.有如下程序:
ANDAL,AL
JZBRCH1
RCRAL,1
JZBRCH2
RCLAL,1
INCAL
JZBRCH3
上述程序运行后,试回答:
(1)当(AL)=时,程序转向BRCH1
(2)当(AL)=时,程序转向BRCH2
(3)当(AL)=时,程序转向BRCH3
5.下列程序段完成什么工作?
DAT1DB30DUP(?
)
DAT2DB10DUP(?
)
┇
MOVCX,10
MOVBX,20
MOVSI,0
MOVDI,0
NEXT:
MOVAL,DAT1[BX][SI]
MOVDAT2[DI],AL
INCSI
INCDI
LOOPNEXT
6.下面程序段执行完以后,AL的内容是什么?
MOVBX,00FFH
ANDBX,0FFFH
ORBX,0F0FH
XORBX,00FFH
7.执行下列指令后,AX寄存器中的内容是什么?
STARTDW10H,20H,30H,40H,50H
EE1DW3
┇
MOVBX,OFFSETSTART
ADDBX,EE1
MOVAX,[BX]
8.试分析下面程序段的功能是什么?
CMPAL,‘A’
JCOTHER
CMPAL,‘Z’+1
JNCOTHER
JMPLETTER
┇
OTHER:
┇
LETTER:
┇
五、程序填空题
1.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。
TESTAX,8000H
MOVPLW,BX
JMPDONE
K1:
DONE:
2.现有下列数据段:
DATASEGMENT
STR1DB‘ABCDEFGHIJKL'
COUNTEQU-STR1
BUFDBCOUNTDUP(0)
DATAENDS
下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。
试把程序中所空缺的指令填上。
MOVSI,OFFSETBUF-1
MOVDI,OFFSETBUF
MOVCX,COUNT
____
LOOP:
MOVSB
____
LOOPLOP
或者()
六、程序设计题
1.编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。
(要求用循环结构编写,循环控制采用计数控制)。
(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。
)
2.设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。
并写出主程序的调用方式。
数据段如下:
DATASEGMENT
DATDBXXH
SQRTABDB0,1,4,9,...81
SQRDB?
DATAENDS
3.试编写出把DX、AX中的双字右移四位的程序段。
4.定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。
汇编语言2005—2006学年第二学期期末考试复习题及参考答案
七、填空
1.十进制数369转换成二进制数为(101110001)2,转换成十六进制数为(171)16.
2.计算机中的指令由(操作码)和(地址码)两部分组成。
3.8086的地址总线有20根,寻址范围为(1M)字节。
4.下一条将要执行的指令的地址存放在寄存器(指令指针寄存器)中。
5.写出IBMPC机的三种子程序返回的指令(RET),(IRET),(IRETD)。
6.汇编语言源程序需经过(汇编)程序汇编,(连接)程序连接才能生成可执行文件。
7.存储器某单元的地址表示为2314H:
4132H,则它的偏移地址=(4132),物理地址=(27272H)
8.REP指令前缀与()指令配合使用。
9.在显示器上查看和修改内存单元的内容可以使用DEBUG的(D)和(E)命令。
10.(AL)=BFH,要求屏蔽第0,1两位,则要执行指令(ANDAL,3F);如果要求第0,1位变反,可使用指令(XORAL,3F)
11.宏汇编适合于(程序短),(参数多)的子功能段使用;
八、选择题
1.设字长N=16,有符号数7AE9H的补码表示为(D)
A.9EA7HB.76C4HC.8417HD.7AE9H
2.比较有符号数3260H与0B425H的大小关系为(C)
A.相等B.小于C.大于D.不能比较
3.指令JMPWORDPTR[BX][DI]中转移的目标地址为(A)
A.16dx(DS)+(BX)+(DI)B.16dx(ES)+(BX)+(DI)
C.16dx(SS)+(BX)+(DI)D.16dx(CS)+(BX)+(DI)
4.在指令MOVAX,[1000H]中,源操作数的寻址方式为(B)
A.立即寻址B.直接寻址C.段内间接寻址D.寄存器寻址
5.中断矢量表中存放的是(D)
A.中断类型号B.断点地址C.中断服务程序D.中断服务程序入口地址
6.8086的汇编语言指令系统中的条件转移指令可以使程序转移到(A)
A.段内的任何地方B.距该指令偏移地址为-32768~+32767的地方
C.距该指令偏移地址为-128~+127的地方.D.段外
7.能定义ASCII码字符串的数据定义语句有(D)
A.DB,DW,DD,DQ,DTB.DB,DW,DDC.DB,DWD.DB;
8.若(AL)=87H,执行ADDAL,0F5H后,S,Z,C,O,P的状态为(C)
A.SF=0,ZF=0,CF=1,OF=1,PF=0B.SF=1,ZF=0,CF=1,OF=0,PF=1
C.SF=0,ZF=0,CF=0,OF=1,PF=0D.SF=1,ZF=0,CF=1,OF=1,PF=1
9.比较指令CMP(D)
A.专用于有符号数比较B.专用于无符号数比较
C.专用于串比较D.不区分比较的对象是有符号数还是无符号数
10.数据传送指令对标志位的影响为(D)
A.都不影响;B.都影响;
C.除了SAHF,POPF,其它均不影响.D.除了控制标志位,其它均不影响
九、判断题
()31.段间调用的子程序必须由伪操作FAR说明为远过程。
T
()32.PC机以位作最小寻址单位。
F
()33.当SRC是立即数时,DST可以使用存储器寻址。
F
()34.指定各个逻辑段偏移地址可以使用ORG伪指令。
T
()35.LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。
T
()36.POPIPF
()37.设327FH和0BFFFH为有符号数的补码表示,则327FH<0BFFFHF
()38.多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明T
()39.MOVAX,VAR1-VAR2+100F
()40.ADD[SI],50F
一十、程序分析题
1.ADW1234H
BDW5678H
PUSHA
PUSHB
POPA
POPB
试回答:
上述程序段执行后(A)=5678H,(B)=1234H
2.分析下面程序段,
MOVAL,200
SARAL,1
MOVBL,AL
MOVCL,2
SARAL,CL
ADDAL,BL
试问程序段执行后(BL)=0E4H(AL)=0DDH
3.STRINGDB‘ABCDEFGHIJ'
MOVAH,01;从键盘输入字符1~9
INT21H
ANDAL,0FH
DECAL
XORAH,AH
MOVBX,OFFSETSTRING
ADDBX,AX
MOVBL,[BX]
MOVAH,02H;显示输出
INT21H
试回答:
(1)上述程序段的功能是什么?
根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。
(2)如从键盘输入字符‘4',程序段有什么结果?
显示器显示字符‘D’
4.有如下程序:
ANDAL,AL
JZBRCH1
RCRAL,1
JZBRCH2
RCLAL,1
INCAL
JZBRCH3
上述程序运行后,试回答:
(1)当(AL)=(AL)=0时,程序转向BRCH1
(2)当(AL)=(AL)=1时,程序转向BRCH2
(3)当(AL)=(AL)=-1时,程序转向BRCH3
5.下列程序段完成什么工作?
把DAT1+20存储单元开始的10个字节搬到DAT2开始的连续10个存储单元中
DAT1DB30DUP(?
)
DAT2DB10DUP(?
)
┇
MOVCX,10
MOVBX,20
MOVSI,0
MOVDI,0
NEXT:
MOVAL,DAT1[BX][SI]
MOVDAT2[DI],AL
INCSI
INCDI
LOOPNEXT
6.下面程序段执行完以后,AL的内容是什么?
0F00H
MOVBX,00FFH
ANDBX,0FFFH
ORBX,0F0FH
XORBX,00FFH
7.执行下列指令后,AX寄存器中的内容是什么?
3000H
STARTDW10H,20H,30H,40H,50H
EE1DW3
┇
MOVBX,OFFSETSTART
ADDBX,EE1
MOVAX,[BX]
8.试分析下面程序段的功能是什么?
判断AL的内容,若为‘A’~‘Z’的大写字母时,程序转LETTER处理,否则转OTHER处理
CMPAL,‘A’
JCOTHER
CMPAL,‘Z’+1
JNCOTHER
JMPLETTER
┇
OTHER:
┇
LETTER:
┇
一十一、程序填空题
1.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。
TESTAX,8000H
JEK1或JZK1
MOVPLW,BX
JMPDONE
K1:
MOVPLW,AX
DONE:
2.现有下列数据段:
DATASEGMENT
STR1DB‘ABCDEFGHIJKL'
COUNTEQU-STR1
BUFDBCOUNTDUP(0)
DATAENDS
下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。
试把程序中所空缺的指令填上。
MOVSI,OFFSETBUF-1
MOVDI,OFFSETBUF
MOVCX,COUNT
__CLD__
LOOP:
MOVSB
__SUBSI,2__
LOOPLOP
或者(STD/ADDDI,2)
一十二、程序设计题
1.编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。
(要求用循环结构编写,循环控制采用计数控制)。
(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。
)
程序段:
MOVAX,0
MOVBX,OFFSETBUF
MOVCX,20
LOP:
ADDAX,[BX]
INCBX
INCBX
LOOPLOP
MOVSUM,AX
2.设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。
并写出主程序的调用方式。
数据段如下:
DATASEGMENT
DATDBXXH
SQRTABDB0,1,4,9,...81
SQRDB?
DATAENDS
STACL1SEGMENTPARASTACK
DW20HDUP(?
)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA
MOVDS,AX
┇
CALLSUBROT
┇
MOVAH,4CH
INT21H
SUBROTPROC
PUSHAX
PUSHBX
LEABX,SQRTAB
MOVAL,DAT
TESTAL,80H
JNSNEXT
NEGAL
NEXT:
XLATSQRTAB
MOVSQR,AL
POPBX
POPAX
RET
SUBROTENDP
CODEENDS
ENDSRART
3.试编写出把DX、AX中的双字右移四位的程序段。
MOVCL,04
SHRAX,CL
MOVBL,DL
SHRDX,CL
SHLBL,CL
ORBL,AH
4.定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。
DATASEGMENT
PATTERNDB23H,24H,25H,26H
DISPLAYDB80DUP(‘’),‘$’
DATEENDS
CODESEGMENT
┇
CLD
LEASI,PATTERN
LEADI,DISPLAY
MOVCX,80
REPMOVSB
MOVAH,09H
LEADX,DISPLAY
INT21H
RET
CODEENDS