汇编语言7.docx
《汇编语言7.docx》由会员分享,可在线阅读,更多相关《汇编语言7.docx(15页珍藏版)》请在冰豆网上搜索。
汇编语言7
《汇编语言程序设计》模拟试卷(1卷)
一.填空
(1)已知存储器某单元的地址表示为2314H:
4132H,则它的偏移地址=(),物理地址=()
(2)一个字存入堆栈时,堆栈指针SP();从堆栈中取出一个字时,SP(),SP总是指向();
(3)8086的分段技术中,存储器的每一段最多含有()字节,最少含有()字节;
(4)与LEABX,TAB等价的指令语句是()。
(5)试写出IBMPC机的三种子程序返回的指令(),(),()。
(6)算术移位指令适用于()数的运算,逻辑移位指令适用于()数的运算。
(7)REP指令前缀与()指令配合使用。
(8)8086的N号中断处理程序的中断向量存放在中断向量表以()开始的4个字节中;
(9)变量和标号均具有段属性,偏移属性和();
(10)在程序运行过程中,IP寄存器始终指向();
(11)欲在显示终端上查看当前8086CPU的各寄存器的内容可以使用调试工具DEBUG的()命令。
查看存储单元的内容可以使用()命令。
(12)汇编语言源程序需经过()程序汇编,()程序连接才能生成可执行文件。
二.选择题
(1)设字长N=16,有符号数76AEH的补码表示为()
A.8952H
B.76C4H
C.76AEH
(2)PTR算符赋予变量的新的类型()
A.只能在本语句中生效;
B.在本段中生效;
C.只能在代码段中生效;
(3)短转移指令可以使程序转移到()
A.段内的任何地方
B.段外
C.距该指令偏移地址为-128~+127的地方.
(4)INC指令执行后()
A.会影响除CF外的其他条件标志;
B.会影响CF
C.不会影响CF
(5)主程序与子程序之间常用的参数传递方式有()
A.中断传送;
B.寄存器,直接存储器传送;
C.寄存器,地址表,堆栈传送;
(6)8088CPU有下列寄存器可用于存储器操作数寻址。
()
A.BP,BX,CX,DX
B.SI,DI,BX,BP
C.BX,DX,SI,DI,
(7)在指令MOVAX,[1000H]中,源操作数的寻址方式为()
A.立即寻址
B.直接寻址
C.段内间接寻址
(8)指令LOOPDATA1中,DATA1必须是()
A.变量
B.标号
C.段名
(9)若(AL)=87H,执行ADDAL,0F5H后,S,Z,C,O,P的状态为()
A.SF=0,ZF=0,CF=1,OF=1,PF=0;
B.SF=1,ZF=0,CF=1,OF=0,PF=1;
C.SF=0,ZF=0,CF=0,OF=1,PF=0
(10)宏汇编适合于()
A.变量较多,程序本身较短的子功能段使用。
B.变量较少,程序本身较短的子功能段使用。
C.变量较多,程序本身较长的子功能段使用。
三.判断题
(1)PC机以字节作为最小寻址单位;()
(2)设327FH和0BFFFH为有符号数的补码表示,则327FH<0BFFFH.()
(3)ADD_PPROCNEAR()
PUSHBX
ADDBX,DX
RET
ADD_PENDP
(4)MOVAH,BX;()
(5)ADD[SI],ES:
BX;()
(6)CMP10H,CH;()
(7)MOVDX,[DI][SI];()
(8)RET4;()
(9)JMPWORDPTR[SI];()
(10)MOV[DI],ARRY[BX];()
四.阅读下面的程序,指出该程序完成的功能
(1)CLD
MOVCX,30
MOVAL,‘’
LEADI,CHAR_FIELD
REPSTOSB
(2)MOVAL,BCD1
ADDAL,BCD2
DAA
MOVBCD3,AL
MOVAL,BCD1+1
ADCAL,BCD2+1
DAA
MOVBCD3+1,AL
(3)MOVDL,ODH
MOVAH,02H
INT21H
MOVDL,0AH
MOVAH,02H
INT21H
(4)MOVCL,4
SHLDX,CL
MOVBL,AH
SHLAX,CL
SHRBL,CL
ORDL,BL
(5)PUSHF
POPAX
ORAX,0100H
PUSHAX
POPF
五.程序设计
试编写完整的程序,求出首地址为DATA的100D字数组中的最大偶数,并以十六进制数形式显示在屏幕上,并显示数制单位符号’H’的功能。
要求
1.用完整的段定义编写程序,
2.程序能够正确返回DOS操作系统.
简述程序设计思想。
.
《汇编语言程序设计》模拟试卷(2卷)
一.填空
(1)计算机中的指令由()和()两部分组成,。
(2)PUSHAX指令执行时.堆栈指针SP自动修正为();POPAX指令执行时,SP自动修正为();
(3)串处理指令规定源寄存器使用SI,源串在()段中;目的寄存器使用DI,目的串必须在()段中。
(4)由汇编程序在汇编过程中执行的指令是()。
(5)当控制标志()等于()时,CPU处于开中断状态,能够响应外设的中断请求..
(6)变量和标号均具有段属性,()和类型属性;
(7)下一条将要执行的指令的地址存放在寄存器()中;
(8)宏汇编适合于(),()的子功能段使用;
(9)能把变量MESS的偏移地址传送给寄存器BX的指令为()
(10)在显示器上查看和修改内存单元的内容可以使用DEBUG的()和()命令。
(11)若将寄存器CX置为零,再执行LOOP指令,那么循环体将执行()次.
(12)8086的地址总线有20根,寻址范围为()字节.
(13)(AL)=0BFH,要求屏蔽第0,1两位,则要执行指令();如果要求第0,1位变反,可使用指令()
二.选择题
(1)CPU的任务是执行存放在存储器里的
A.高级语言序列B.汇编语言序列C.指令序列
(2)完成把汇编语言源程序模块转换为二进制的目标模块的源程序是:
A.编辑程序B.汇编程序C.连接程序
(3)已知X=00FFH,Y=0AAAAH,则
A.X∧Y=00AA0HB.X∨Y=0AAFFHC.X∧Y=0AFAFH
(4)数据传送指令对标志位的影响为()
A.都不影响;B.都影响;C.除了SAHF,POPF外,其它均不影响.
(5)设DS=1E4AH,偏移地址为0056H,该字节的物理地址为
A.1E4A6HB.1E456HC.1E556H
(6)指针及变址寄存器为:
A.CS,DS,SS,ESB.AX,BX,CX,DXC.SP,BP,IP,SI,DI
(7)在指令ADDAX,[SI]中,源操作数的寻址方式为()
A.立即寻址B.直接寻址C.段内间接寻址
(8)要判断有符号数运算结果是否溢出,()
A.以CF做依据B.以OF做依据C.以CF和OF共同做依据
(9)若(AX)=62A0H,执行ADDAX,1234H后()
A.SF=0,ZF=0,CF=0,OF=0,PF=1;
B.SF=1,ZF=0,CF=0,OF=1,PF=1;
C.SF=0,ZF=0,CF=0,OF=1,PF=0
(10)条件转移指令可以使程序转移到()
A.段内的任何地方B.段外C.距该指令偏移地址为-128~+127的地方.
三.判断题
(1)段间调用的子程序必须由伪操作FAR说明为远过程。
()
(2)PC机以位作最小寻址单位;()
(3)当SRC是立即数时,DST可以使用存储器寻址。
()
(4)指定各个逻辑段偏移地址可以使用ORG伪指令()
(5)ADD[SI],50;()
(6)INAX,100H()
(7)XCHG[1000H],2000H()
(8)RET8;()
(9)POPIP()
(10)SARAX,2;()
四.阅读下面的程序,指出该程序完成的功能
(1)
MOVAX,0
MOVBX,2
MOVCX,5
L1:
ADDAX,BX
ADDBX,2
LOOPL1
HLT
(2)CMPAX,BX
JAMOE
MOVAX,BX
MOE:
MOVMAX,AX
(3)
DISPLAYMACROSTR
LEADX,STR
MOVDS,SEGSTR
MOVAH,09H
INT21H
ENDM
(4)MOVCX,4
NEXT:
SALAX,1
RCLDX,1
DECCX
JNENEXT
(5)NEGDX
NEGAX
SBBDX,0
五.根据要求写出汇编语言指令
(1)用寄存器BX和位移量0ABH的寄存器相对寻址方式,把存储器中的一个字与CX寄存器相加,并把结果送回存储单元中(2分)
(2)把数0F9H送到端口02F8H中(4分)
(3)写出汇编语言进行子程序调用的过程,并说明堆栈的变化:
(8分)
六.程序设计
已知:
在数据段DSEG中有一个字数组ARRAY,数组长度为L,请写出可生成*.EXE文件的完整程序,要求实现以下功能:
1.找出绝对值最大的数,把它放在数据段的ARRAY+2L中,把该数的偏移地址存放在ARRAY+2(L+1)单元中
2.至少定义一个数据段,
3.程序结束,正确返回DOS操作系统.
《汇编语言程序设计》模拟试卷(3)
一.填空
(1)已知存储器某单元的地址表示为2314H:
0ABF0H,则它的段地址=(),物理地址=()
(2)8086有()根地址线,可寻址存储空间为()
(3)8086的分段技术中,存储器的逻辑地址的划分必须满足()和()的条件;
(4)可用作基址寄存器的寄存器有()(),可用作间接寻址的寄存器有(),()
(5)由汇编程序在汇编过程中执行的指令为(),
(6)若将寄存器CX置为零,再执行LOOP指令,那么循环体将执行()次.
(7)REPE指令前缀与()指令配合使用。
(8);(AL)=0BFH,要求屏蔽第0,1两位,则要执行指令();如果要求第0,1位变反,可使用指令()
(9)汇编语言程序有(),(),分支程序,()四种结构.;
(10)欲在显示终端上查看存储单元的内容可以使用调试工具DEBUG的()命令。
修改存储单元的内容可以使用()命令。
二.选择题
(1)设字长N=16,有符号数7AE9H的补码表示为
A.9EA7HB.76C4HC.8417HD.7AE9H
(2)比较指令CMP()
A.专用于有符号数比较B.专用于无符号数比较
C.专用于串比较D.不区分比较的对象是有符号数还是无符号数
(3)PTR算符赋予变量的新的类型()
A.只能在代码段中生效;B.只能在数据段中生效;C.只能在本语句中生效;D.在本段中生效;
(4)中断矢量表中存放的是
A.中断类型号;B.断点地址;C.中断服务程序;D.中断服务程序入口地址
(5)数据传送指令对标志位的影响为
A.都不影响;B.都影响;C.除了SAHF,POPF,其它均不影响.D.除了控制标志位,其它均不影响
(6)8086CPU中既可以作16位,又可以作8位使用的寄存器有
A.AX,BX,CX,DXB.BX,BP,SI,DI;C.CS,DS,ES,SS;D.SP,BP,IP,PSW
(7)8086的汇编语言指令系统中的条件转移指令可以使程序转移到
A.段内的任何地方B.段外C.距该指令偏移地址为-128~+127的地方.D.距该指令偏移地址为-32768~+32767的地方.
(8)能定义ASCII码字符串的数据定义语句有
A.DB,DW,DD,DQ,DTB.DB,DW,DDC.DB,DWD.DB;
(9)比较有符号数3260H与0B425H的大小关系为
A.相等B.小于C.大于D.不能比较
(10)指令JMPWORDPTR[BP][DI]中转移的目标地址为
A.16dx(DS)+(BX)+(DI)B.16dx(ES)+(BX)+(DI)
C.16dx(SS)+(BX)+(DI)D.16dx(CS)+(BX)+(DI)
三.判断题
(1)POPCS()
(2)MOVAX,VAR1-VAR2+100()
(3)LEABX,VAR1()
(4)XLAT[2000H]()
(5)MOVDX,[BX][BP];()
(6)OUTDX,BX;()
(7)多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明;()
(8)CMP0AH,AX()
(9)MOVDS,2000H()
(10)LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。
四.分析下面的程序段,指出该程序完成的功能
(1)MOVAX,00FFH
ANDAX,0FFFH
ORAX,0F0FH
XORAX,00FFH
问:
上述程序执行后,AL的内容是什么?
(2)OUTPUTMACROMSEG
LEADX,MSEG
MOVAH,0AH
INT21H
ENDM
(3)MOVDX,3F8H
MOVAL,STATUS
OUTDX,AL
(4)
MOVAX,WORDPTRX
ADDAX,WORDPTRY
MOVWORDPTRZ,AX
MOVAX,WORDPTRX+2
ADCAX,WORDPTRY+2
MOVWORDPTRZ+2,AX
(5)
ANDAX,AX
JSMOVE
MOVPLUS,AX
JMPEXIT
MOVE:
MOVMINUS,AX
EXIT:
HLT
五.程序填空
(1)在DA1字符串中查找DA中指定的字符,如查找到则将该字符所在的位置送入DA2中;若未查找到则将0送入DA2中;请在程序中的空格处填入合适指令使其完整。
DATASEGMENT
DA1DB‘MYCOMPTER’
CONTEQU$-DA1
DADB‘P’
DA2DB0
DATAENDS
…
MOVBL,0
LEADI,DA1
MOVCX,CONT
MOVAL,DA
____________
HLT
SUB1PROC
CLD
REPNZSCASB
______________
SUBDI,OFFSETDA1
MOVBX,DI
DON:
MOVDA2,BL
______________
SUB1ENDP
(2)在内存中自tab开始的16单元连续存放着0至15的平方值(平方表),在x单元有[0,15]中的任意数,如x=12,查表求x的平方值,并把结果放入y单元中。
请在空格处填入合适指令
Datasegment;definedatasegment
tabdb0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,225
xdb12
ydb?
dataends
……
leabx,tab
movah,0
moval,x
_____________
moval,[bx]
movy,al
______________
Int21h;程序结束,返回操作系统
六.程序设计
试编写完整的程序,求出首地址为DATA的100D字数组中的最大偶数,并将其保存到地址为DADA+2×100的存储单元中。
要求
3.用完整的段定义编写程序,
4.程序能够正确返回DOS操作系统.
3.简述程序设计思想。
.
《汇编语言程序设计》模拟试卷(4)
一.填空
(1)已知存储器某单元的物理地址27276H,段地址为2314H,则它的偏移地址=();
(2)由汇编程序在汇编过程中执行的指令是()。
(3)汇编语言的软中断调用必须以()指令产生;
(4)宏调用通过()传递参数.
(5)表示计算机执行什么操作的符号是()
(6)存放指令机器码的存储器段区是()
(7)DOS功能调用中的10号功能是从键盘接收字符串,使用前需要定义(),并且要将()传送到();
(8)DOS功能调用中的9号功能是在显示器上显示字符串,使用前需要定义(),
该字符串必须以()字符结束;
(9)调试工具DEBUG的()命令可以将机器码进行反汇编,使用()命令可以不进行汇编过程直接在内存中建立汇编语言程序。
(10)DOS功能调用中的2号功能是在显示器上显示字符,使用前需将()送到();
(11)DOS功能调用中的1号功能是(),使用后,AL寄存器中存放的是();
(12)XOR指令可以用于对指定的二进制位进行()操作,AND指令可以用于对指定的二进制位进行()操作,OR指令可以用于对指定的二进制位进行()操作;
二.选择题
(1)下列指令中,错误的指令是()
A.SHRAX,1B.MOVAX,ES:
[DX]C.SUBCX,AXD.ADDBX,[BP+DI]
(2)指令MOVAX,COUNT[SI]的源操作数的寻址方式是
A.直接寻址;B.寄存器相对寻址C.寄存器间接寻址D.基址变址寻址
(3)使用LINK连接命令执行后可以生成文件的扩展名为()
D.COMB.EXEC.OBJD.LST
(4)在循环程序中使用LOOP指令作为循环结束的判断,其计数值一般应放在寄存器()中
C.DXB.CXC.CLD.BX
(5)为使执行串操作指令时,地址按减量方式处理,应该使用指令()
A.STDB.STIC.CLDD.CLI;
(6)8088CPU有下列寄存器可用于存储器操作数寻址。
()
A.BP,BX,CX,DXB.SI,DI,BX,BPC.BX,DX,SI,DI;D.CS,DS,ES,SS
(7)若(BX)=87A9H,执行SUBBX,0F508H后,S,Z,C,O的状态为()
A.SF=0,ZF=0,CF=1,OF=1,C.SF=0,ZF=0,CF=0,OF=1
B.SF=1,ZF=0,CF=1,OF=0,D.SF=0,ZF=0,CF=0,OF=1
(8)指令JMPDATA1中,DATA1必须是()
A.变量B.标号C.段名D.过程名
(9)用MOV指令将十进制数64以压缩BCD码的形式送入AX,正确的指令是
A.MOVAX,0604B.MOVAX,0064HC.MOVAX,0604HD.MOVAX,0406
(10)设当前堆栈指针(SP)=0000H,如果在堆栈中存入5个数据,则(SP)的值为
A.0FFF6HB.000AHC.0005HD.0FFFBH
三.判断题
(1)ALPHAEQU78H
BETAEQUALPHA+1()
(2)DATADB100H()
(3)MAINPROCFAR()
…
ENDP
(4)宏调用比子程序调用的执行速度快;()
(5)宏调用在源程序汇编的过程中完成;()
(6)执行XLAT指令前,要将表的首地址和偏移量分别存放到AL,BX中()
(7)当汇编结束后,目标程序中仍然保留有伪指令()
(8)IRETN;()
(9)JMP[BX];()
(10)MOV[DI],ARRY[BX];()
四.编制程序题
(1)要求将键盘输入的小写字母用大写字母显示出来
(2)设有数据定义如下
DATASEGMENT
ARRAYDB‘THISISMASMPROGRAM’,’$’
…
DATAENDS
编写程序段,将ARRAY为首地址的字符串显示输出;
五.阅读程序,判断功能
(1)下列语句执行后,AX寄存器的内容是多少?
ARRAYDW10,20,30,40,50
ENTRYDW3
┇
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
(2)现有程序段如下:
MOVAX,01H
MOVBX,02H
MOVCX,03H
LOP:
INCAX
ADDBX,AX
SHRAX,1
LOOPLOP
上述程序段执行后,AX、BX寄存器的值分别是多少?
五.程序设计
编写完整的程序,完成将存放在BX中的二进制数以十六进制数形式显示在屏幕上,并显示数制单位符号’H’的功能。
要求
5.简述程序设计思想。
6.用完整的段定义编写程序;
3.程序能够正确返回DOS操作系统.