2015年6月汇编语言程序设计-试题库(给学生复习)
更新时间:2023-12-02 14:05:01 阅读量: 教育文库 文档下载
选择题
1、设DS=8225H,DI=3942H,指令MOV BX,[DI]源操作数的物理地址是( ) A、85B92H
B、86192H
C、BB690H
D、12169H
2、计算机能直接识别并执行的语言是( )。 A、汇编语言
B、机器语言
C、高级语言
D、低级语言
3、循环指令LOOPNZ终止循环的条件是( )。 A、CX=0,且ZF=0 C、CX≠0,且ZF=0
B、CX=0,或ZF=1 D、CX≠0,或ZF=1
4、循环控制指令LOOPNZ/LOOPNE继续执行循环的条件是( )。 A、CX≠0且ZF=1 B、CX≠0且ZF=0 C、CX≠0或ZF=1 D、CX≠0或ZF=0
5、已知ARRY DB 500 DUP(0),则ARRY+100存储单元内容为( )。 A、100
B、500
C、0
D、101
6、?THIS IS A BOOK?作为字符串存储在数据段时应使用数据定义指令是( )。 A、DB B、DW B、DD D、以上三种情况均可 7、对一个段的起始地址描述,下面不正确的是( )。 A、可在内存任何地方
B、段的起始地址能被16整除
C、段的起始地址用16进制数表示,但最后一位为0 D、段的起始地址可用任意一个四位16进制数乘以16来表示
8、要在程序中定义缓冲区BUF,保留9个字节存储空间的语句是( )。 A、BUF DW 9
B、BUF DB 9 D、BUF DW 9 DUP (?)
C、BUF DB 9 DUP (?)
9、AX,BX,CX都是通用寄存器,但它们又可用于专门的目的,它们的名字称为( )。
A、累加器、变址寄存器、计数器 B、累加器、基址寄存器、计数器 C、累加器、指针寄存器、计数器 D、累加器、变址寄存器、指针寄存器 10、变址寄存器指的是( )。 A、SI、DI
B、SI、SP
C、SP、BP
D、DI、DX
11、在执行子程序段间调用CALL SUBR指令后,SP的值( )。
A、加2 B、减2 C、加4 D、减4
12、在执行子程序段内调用CALL SUBR指令后,SP的值( )。 A、加1
B、减1
C、加2
D、减2
13、当SS=9876H, SP=4328H,执行POPF指令后,堆栈顶部的物理地址是( )。 A、9CA8AH
B、9CA90H
C、9CA86H
D、0DB00H
14、下列传送指令中有语法错误的是( )。 A、MOV CS,AX C、MOV SS,AX
B、MOV DS,AX D、MOV ES,AX
15、下面指令执行后,改变AL寄存器内容的指令是( )。 A、TEST AL,02H
B、OR AL,AL
C、CMP AL,BL
D、AND AL,BL
16、DEC BYTE PTR[BX]指令中的操作数的数据类型是( )。 A、字
B、双字
C、字节
D、四字
17、与MOV BX,OFFSET VAR指令完全等效的指令是( )。 A、MOV BX,VAR C、LES BX,VAR
B、LDS BX,VAR D、LEA BX,VAR
18、MOV SP,3210H
PUSH AX
执行上述指令序列后,SP寄存器的值是( )。 A、3211H
B、320EH
C、320FH
D、3212H
19、MOV BH,1000[SI],该指令中源操作数采用的寻址方式是( )。 A、立即
B、直接
C、寄存器相对寻址
D、寄存器间接寻址
20、BUF DW 10H DUP(3 DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是( )。(DW后面的10H化为10进制为16,然后2*16*(3*(1+1)+1+1)=256个字节,转化为16进制数后就是100H A、80H
B、100H
C、124
D、192
21、DOS系统功能调用中,显示单个字符的系统调用号是( )H。 A、01H
B、02H
C、08H
D、09H
22、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )。
A、AX,BX,CX,DX C、SP,IP,BP,DX
B、BX,BP,SI,DI D、CS,DS,ES,SS
23、下面描述中,( )是正确的。
A、高级语言与汇编语言的算法都是针对计算机硬件结构的。 B、汇编语言需要算法,高级语言不需要算法。 C、高级语言的算法是针对计算机硬件结构的。 D、汇编语言的算法是针对计算机硬件结构的。
24、在书写汇编语言程序时,在代码段中初始位置要对数据段进行加载,加载的指令语句,下面( )描述正确。 A、mov ax,data
B、mov ds,data
D、mov ax,ds mov cs,ds
C、mov ax,data mov ds,ax
25、无条件段间间接转移指令JMP DWORD PTR[BX][DI]执行的操作是( )。
A、IP?(EA) CS? (EA+2) C、IP<=(BX)
DS? (DI)
B、IP? (BX) CS? (DI) D、IP? (BX)+(DI)
26、条件转移指令JA PROG是一条两字节指令,如果该条指令的第一字节存放在0025H单元,相对偏移地址为0F4H,如果测试条件满足时,应转移到( )处取下一条指令。 A、001BH
B、0119H
C、0019H
D、011BH
27、条件转移指令JC和段内直接短转移指令JMP SHORT LP,它们的转移范围是( )。
A、-128~+127 B、0~65535
C、-127~+128 D、0~255
28、在汇编语言程序的开发过程中使用宏功能的顺序是( )。 A、宏定义,宏调用
B、宏定义,宏展开 D、宏定义,宏展开,宏调用
C、宏定义,宏调用,宏展开
29、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是( )。 A、名字项
B、操作项
C、操作数项
D、注释项
30、在下述指令中,错误的指令是( )。
A、MOV [BX],[DI] C、AND BX,8000H
B、MOV BX,AX D、INC BX
31、用MASM对汇编语言源程序进行汇编时,形成的目标序文件的扩展名应为( )。 A、.EXE
B、.ASM
C、.OBJ
D、.LST
32、用EDIT编辑程序建立汇编语言程序时,其源程序文件的扩展名应为( )。 A、.OBJ
B、.EXE
C、.ASM
D、.LST
33、既可以执行程序(文件名.EXE)进行运行,也可以对其进行调试的程序是( )。 A、MASM
B、DEBUG
C、EDIT
D、LINK
34、为了使执行串操作指令时,地址按减量方式处理应使用指令( )。 A、CLI
B、STI
C、CLD
D、STD
35、为在一连续的存储单元中依次存放数据41H,42H,?48H,下面的数据定义语句中有语法错误的是( )。
A、DB 41H,42H,43H,44H,45H,46H,47H,48H B、DW 4142H,4344H,4546H,4748H C、DB ‘ABCDEFGH’
D、DW ‘BA’,‘DC’,‘FE’,‘HG’
36、把若干个模块连接起来成为可执行文件的系统程序是( ) A、汇编程序 B、连接程序 C、机器语言程序 D、源代码程序 37、在下列语句中,AGAIN称为( )。
AGAIN: INC SI A、符号
B、助记符
C、标号
D、变量
38、已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是( )。 A、DIV BX
B 、CWD D 、CBW
IDIV BX IDIV BX
C、XOR DX,DX DIV BX
39、下面是关于子程序定义,正确的是( )。
A、子程序和一般程序一样,无特殊之处 B、子程序就是一个程序段
C、子程序是按规定格式设计,可以多次反复调用,完成指定功能的特殊程序段 D、具有一定功能的独立程序段
40、子程序是用过程定义语句( )定义的。 A、PROC ENDP C、CALL RET
B、PROC ENDS
D、PROC RET
41、主程序和所调用的子程序在同一代码段中,子程序的属性定义为( )。 A、TYPE
B、WORD
C、NEAR
D、FAR
42、执行下面指令序列后,结果是( )。
MOV AL,82H
CBW(字节转换为字指令,该指令的隐含操作数为AH
和AL。其功能是用AL的符号位去填充AH,即:当AL为正数,则AH=0,否则AH=OFFH。 A、AX=0FF82H
B、AX=8082H
C、AX=0082H
D、AX=0F82H
43、若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )。 A、1400H
B、77F8H
C、0000H
D、0FFFFH
)。
44、设DH=10H,执行NEG DH指令后,正确的结果是( A、DH=10H CF=1 C、DH=10H CF=0
B、DH=0F0H CF=0
D、DH=0F0H CF=1(NEG是汇编指令中的求补指令,NEG
指令对操作数执行求补运算:用零减去操作数,然后结果返回操作数。求补运算也可以表达成:将操作数按位取反后加1;
因此10000按位取反后为11101111,加1为11110000,写成十六进制为F0H,因此答案在B和D之间选择。)
45、DA2 DB ?AB?,?CD? MOV AX,WORD PTR DA2+1
上述语句执行后,AX中的值是( )。 A、?AD?
B、?BC?
C、?DA?
D、?CB?
46、执行PUSH BP指令时,目的操作数的物理地址表达式是( )。 A、16*SS+BP
B、16*DS+BP
C、16*CS+BP
D、16*SS+SP
A、JNC NEXT C、SHL AX,1
B、CMP AX,BX D、OR AL,AL
99、定义宏指令的伪指令是( )。 A、PROC和ENDP C、EQU和END
B、CODE和ENDS D、MACRO和ENDM
100、在下列寄存器中,代码段寄存器是( )。 A、DS
B、ES
C、CS
D、SS
101、有数据定义语句BUF DW 0ABH,1,10 DUP(3 DUP(1,0),2)汇编后,为变量BUF分配的存储单元字节数是( )。 A、48H
B、90H
C、120 D、60
102、若有BUF DW 1,2,3,4。则可将数据02H取到AL寄存器中的指令是:( )。
A、MOV AL,BYTE PTRBUF+1 B、MOV AL,BYTE PTRBUF+2 C、MOV AL,BYTE PTRBUF+3 D、MOV AL,BYTE BUF2 103、指令指针寄存器是( )。 A、IP
B、 SP
C、BP
D、PSW
104、下列指令执行后总是使CF=0,OF=0的是( )。 A、AND
B、NEG
C、NOT
D、INC
105、确定下列哪些数据在汇编语言中是非法的( )。 A、F3H
B、10101010B
C、123 D、137Q
106、现用数据定义伪指令定义数据:BUF DB 4 DUP(0,2 DUP(1,0)) 问定义后,存储单元中有数据0100H的字单元个数是( )。 A、4
B、3
C、8
D、12
107、计算机系统由()组成。
A、硬件系统和软件系统 B、系统硬件和系统软件 C、CPU和系统软件 D、操作系统和主机
108、8086/8088微处理器中,既可作为16位寄存器也可分为两个8位寄存器用
的寄存器是( )。 A、BP SP SI DI C、CS DS SS ES
B、AX BX CX DX D、AX BX SI DI
109、用DEBUG调试汇编语言程序时,显示某指令的地址是2F80:F400,此时段寄存器CS的值是( )。 A、F400H
B、2F80H
C、F4000H
D、2F800H
110、已知AX=0001H,下列四条指令执行后,不能使ZF=1的语句是( )。 A、DEC AX B、SUB AX, 1 C、AND AX , 1 D、CMP AX,1 111、设DS=8225H,DI=3942H,指令MOV BX,[DI]源操作数的物理地址是( )。 A、85B92H
B、86192H
C、BB690H
D、12169H
112、如果内存中某一单元的逻辑地址为2318H:0035H,它的段地址、偏移地址及物理地址是( )。 A、2318H、0035H、231B5H
B、2318H、0035H、234DH D、2318H、00350H、2668H
C、23180H、0035H、23215H
113、存储单元有惟一的物理地址,但可用不同段地址和偏移地址表示。若存储单元的物理地址是88D52H,则下面( )的表示是正确的。 A、8561H:3742H C、85610H:3742H
B、8561H:3752H D、3752H:85610H
114、控制寄存器是指() A、BP SP
B、SP IP
C、SI DI
D、IP FLAGS
115、FLAGS寄存器中,属于控制标志位的是() A、CF AF PF
B、DF IF TF
C、OF SF ZF
D.DF OF CF
116、用DEBUG调试汇编语言程序时,显示某指令的地址是2F80:F400,此时段寄存器CS的值是( )。 A、F400H
B、2F80H
C、F4000H
D、2F800H
117、设DS=1100H,(12000H)=80H,(12001H)=20H,(12002H)=30H,执行MOV AX, [1000H]则AX=( )。 A、8000H
B、0080H
C、2080H
D、8020H
118、CPU与存储器之间的信息交换使用的是()
A逻辑地址 B有效地址 C物理地址 D相对地址
119、若各段地址分配如下:数据段为1K,代码段为4K,堆栈为8K,附加段为16K。若从10000H开始分段,各段依次相连,段地址寄存器的值是() A、DS=1000H CS=1040H SS=1140H ES=1340H B、DS=1000H CS=1010H SS=1150H ES=13D0H C、DS=1000H CS=1040H SS=1050H ES=13D0H D、DS=1000H CS=1040H SS=1200H ES=1400H
120、有指令MOV AX,1234H,指令中的立即数1234H是存储在( )。 A、数据段
二、填空题
B、代码段 C、附加段 D、堆栈段
循环程序可由循环初始化、循环体、循环控制三部分组成。 循环初始化、循环体、循环控制
在存取一个存储器操作数时,段地址必须由相应的段寄存器提供。 相应的段寄存器
ARRAY DB 0,2 DUP(1,2),0,3汇编时生成的数据依次是 。 0,1,2,1,2,0,3
设BX=1152H,偏移量D=3568H,那么指令 “ADD D[BX],AL”中目的操作数的有效地址EA= 。 46BAH
在串操作程序中,通常在重复前缀指令REPZ或REPNZ后,选用的串操作指令是CMPS或SCAS才有实际意义。 CMPS、SCAS
有指令MOV CL,N完成将一个有符号数送入CL,要使该指令合法,则N的最大值是 127 ,最小值是 -128。(用十进制表示) 127,-128
中断INT 12H 在中断向量表中的物理地址是48H、49H、 4AH和4BH。 48H、49H、4AH、4BH
“=”和“EQU”两条伪指令有相同的功能,它们之间的区别是EQU伪指令不允许对符号名重复定义。 EQU
在汇编语言源程序文件中,每一个段都有段定义伪指令SEGMENT和ENDS来分段。 SEGMENT
存储器的存储单元的物理地址由两部分组成,它们是 和 。 段地址、偏移地址/有效地址/EA(3种写法均可以)
偏移地址可由各种成份组成,也称为有效地址,用EA表示。 有效地址、EA
取指令时,默认的段寄存器是 CS ,堆栈操作时,默认的段寄存器是 SS ,通用数据读写,默认的段寄存器是DS ,目的串操作时,默认的段寄存器是 ES ,以BP作为基地址进行存取方式时,默认的段寄存器是 SS 。 CS、SS、DS、ES、SS
DOS系统功能调用中1 号调用的功能是 ;2号调用的功能是 ;9号调用的功能是 ;10号调用的功能是 。 输入一个字符、显示一个字符、显示一个字符串、输入一个字符串
CF是程序状态字寄存器中的 标志位,ZF是 标志位,SF是 标志位。
进位、零、符号
要将二进制数10100110B输出到端口25H,可用MOV AL,10100110B 和OUT 25H,AL两条语句来实现。 MOV AL,10100110B、OUT 25H,AL
汇编语言源程序在计算机上不能直接运行,必须经过 和 后才能形成一个可执行文件。 编译、链接
8086/8088CPU中,有二个变址寄存器,分别是 SI 和 DI 。 SI、DI
在8086/8088系统中,存储器是分段的,每段最大长度是 64K 字节。 64K
内存的地址区域从00000H开始为中断向量表。 00000H
子程序的参数传送方式有寄存器 、 地址表 、 堆栈 等。
寄存器参数传送方式、地址表参数传送方式、堆栈参数传送方式
子程序调用和返回是通过指令 和 来实现的。 CALL、RET
逻辑运算指令都是按位操作的,其中 NOT 指令执行后不影响任何标志位,其他指令执行后,标志位 CF 和 OF 一定是0。
NOT、CF、OF
在1M字节的存储器中,每个存储单元都有一个唯一的 位地址(二进制形式),称为该物理单元的物理地址。 20
若(SP)=0FFFFH,则指令POP AX执行后,(SP)=0001H 0001H
n位补码的表数范围为:- ≤N≤+ 。 2n-1、2n-1-1
指令MOV AX,SEG BUF的执行,是把BUF所在的段地址送到AX中。 BUF所在的段地址
当标志位 CF =1时表示无符号数运算产生溢出,而当标志位 OF =1是表示带符号数运算产生溢出。 CF、OF
外中断有两种类型,分别是 可屏蔽中断和 非屏蔽中断 可屏蔽中断、非屏蔽中断
已知DS=29A0H,某数据的物理地址是2A400H,则当DS=6700H时,该数据的物理地址是 67A00H 67A00H
要将二进制数10100110B输出到端口25H,可用 和 两条语句来实现。
MOV AL,10100110B;OUT 25H,AL
中断INT 10H 在中断向量表中的物理地址是 、 、 和 。 40H,41H,42H,43H
在汇编语言源程序文件中,每一个段都有段定义伪指令 SEGMENT 和ENDS来分段。SEGMENT
汇编语言源程序在计算机上不能直接运行,必须经过编译 和 连接 后才能形成一个可执行文件。 编译,连接
一条指令由 操作码 和操作数 两部分组成。 操作码,操作数
子程序的调用和返回是通过指令 CALL 和RET 来实现的。 CALL,RET
8086/8088指令系统中,所有指令的目的操作数均不能为 立即 寻址方式。
立即
1、现有数据定义伪指令如下,写出对应的数据在存储单元中的存放形式。 BUF1 DB 01,52H
BUF2 DW 3 DUP(?,0)
BUF3 DB 2 DUP(0,2DUP(1,2),3) BUF1 BUF2 BUF3 BUF1 01 52
BUF2 - - 0 0 - - 0 0 - - 0 0 BUF3 0 1 2 1 2 3 0 1 2 1 2 3
2.有两个16位数1000H和ABCDH分别存放在内存10000H和10004H单元中,试用图表示他
们在内存中的存放情况。
3.若在内存中建立50个字的数据区,其起始地址为1000:0100,试给出数据区第一个字单元和最后一个字单元的物理地址。
解:第一个字的物理地址=1000H*10H+0100H=10100H 最后一个字的物理地址=10100H+(50-1)*2=10162H
4、什么是伪操作?简述伪指令和指令的区别?
答:伪操作是汇编程序对源程序进行汇编时处理的操作,完成处理器选择、存储模式定义、数据定义、存储器分配、指示程序开始结束等功能。
伪指令和指令的区别在于,每一条指令必须生成机器代码,然后在程序运行期间由CPU来执行其操作;而伪指令是在汇编期间由汇编程序执行的操作命令,除了数据定义及存储器分配伪指令分配存储器空间外,其它伪指令不生成目标码。
5、已知AX=1234H,CX=0302H,CF=0,指出下述指令执行后的结果及标志位CF、SF、ZF、OF的值分别是多?
解:1234H+0302H=1536H,指令执行后,AX的值为1536H。
没有产生进位,CF=0;结果为正数,SF=0;结果不等于0,故ZF=0;两正数相加,结果为正,故无溢出,OF=0。
6、在0624H单元内有一条二字节JMP SHORT OBJ指令,如其中位移量为(1)27H,(2)6BH,(3)0C6H,试问转向地址OBJ的值是多少?(要有计算过程) (1)0624H+2H+27H=064DH (2)0624H+2H+6BH=0691H (3)0624H+2H+0FFC6H=05ECH
7、求出15F4H减去4EA0H之差,并根据结果设置标志位SF、ZF、CF和OF的值。 15F4H-4AE0H=0C754H,其中 SF=1 ZF=0 CF=1 OF=0
8、如TABLE为数据段中0032单元的符号名,其中存放的内容是1234H,试问以下两条指令有什么区别?指令执行完后BX寄存器的内容是什么?(5分) (1)MOV BX,TABLE (2)LEA BX,TABLE
MOV指令是数据传送指令,是将TABLE对应的存储单元中的内容送入BX,因此,指令执行完后BX的内容为1234H,而LEA指令是地址传送指令,是将TABLE的偏移地址传送给BX,因此,指令执行完后BX的内容为0032H。
9、请简述指令JMP DI和JMP [DI]的相同点与不同点。
这两条指令都是无条件的段内间接转移指令,不同的是JMP DI采用的寄存器寻址方式,转移到以(DI)内容为偏移地址的单元去执行指令;而JMP [DI]则采用的是寄存器间接寻址方式,转移到以(DI)间接寻址的内存单元内容为偏移地址的单元去执行指令。
10、宏指令与子程序有什么不同之处? 宏指令实际上就代表了它对应的一组指令。对程序中出现的宏指令进行汇编时,这条宏指令被它对应的一组指令所代替。如果程序中多次使用宏指令,就等于多次重复拷贝了这个指令组,占用的内存随之增加。
调用子程序通过执行CALL指令实现,存在“主程序”与“子程序”之间的两次控制转移。使用宏指令不存在控制转移的过程。
使用子程序和宏指令都可以提高编程效率。子程序占用固定大小的存储空间,被主程序调用时,空间不会随调用次数而增加。但是,宏指令占用存储空间会随着使用次数的增加而增加。 11、求出16进制数4321H与62A0H的和,并根据结果设置标志位SF、ZF、CF和OF。 4321H+62A0H=A5C1H,其中SF=1,CF=0,ZF=0,OF=1 12、程序分析题
MOV AX,1234H MOV BX,AX NEG BX ADD AX,BX
请写出以上程序段执行后,(AX)=?,(BX)=?,CF=?
参考答案(AX)=0,(BX)=0EDCCH,CF=1 13、设某数据段: DATA SEGMENT ORG 20H NUM1=8 NUM2=NUM1+10H DA1 DB ?COMPUTER? DB 0AH,0DH COUNT EQU $-DA1
DA2 DW ?CO?,?MP?,?UT?,?ER? DATA ENDS
试回答:1)DA1的偏移地址是多少?2)COUNT的值是多少?3)DA2+5字节单元的内容是多少?
参考答案: 1)20H 2)0AH 3)?U?的ASCII码
14、DA_B DB 0CH,9,8,0FH,0EH,0AH,2,3,7,4 ┇
XOR AX,AX XOR CL,CL XOR BX,BX
LOP: TEST DA_B[BX],01H JE NEXT
ADD AL,DA_B[BX] INC AH NEXT:INC BX INC CL CMP CL,10 JNE LOP
上述程序段运行结束后,AH=__4____,AL=__34____。如果把”JE NEXT“指令改为“JNE NEXT“指令,那么AH=__6____,AL=__50____。 参考答案4、AH=4,AL=34;AH=6,AL=50 15、分析下面程序,回答指定问题:
MOV AX,DX NOT AX ADD AX,DX INC AX
试回答:(AX)= ,(ZF)= 。(0,1) 16、BUF DW 0000H
┇
LEA BX,BUF STC
RCR WORD PTR[BX],1 MOV CL,3
SAR WORD PTR[BX],CL
问:该程序段执行后,存储单元BUF的内容为 。(0F000H或十进制数-4096) 17、BLOCK DB 20,1FH,08H,81H,0FFH? RESULT DB ? ┇
START:LEA SI,BLOCK MOV CX,[SI] INC SI
MOV AL,[SI] LOP1: CMP AL,[SI+1] JNG NEXT
MOV AL,[SI+1] NEXT: INC SI LOOP LOP1
MOV RESULT,AL HLT
问:(1)该程序完成的功能是 ;
(2)该程序的循环次数是 。(从BLOCK数组中找出最小数,并送入RESULT单元;循环次数为20) 18、MOV AX,00FFH MOV BX 0FFFFH XOR AX,BX NEG AX
问:该程序段执行后,AX= ,CF= 。(0100H (CF)=1) 19、MOV BX,1234H
MOV AX,BX NEG AX ADD AX,BX
问:该程序段执行后,AX= ,CF= 。(0000H,1) 20、MOV AL,01H ROR AL,1 OR AL,AL NEG AL
上述程序段执行后,AL= ,CF= 。(AL=80H, CF=1) 21、已知有如下指令
MOV AX,A AND AX,0FF0H MOV A,AX OR A,000FH
1)以上指令实现的功能是什么?
2)若已知(A)=2525H,那么执行以上指令后,(A)=? 3)若已知(A)=5252H,那么执行以上指令后,(A)=?
1)将A高4位清0,低4位置1;2)(A)=052FH,3)(A)=025FH 22、设AL中高低4位分别有大于7的数, MOV AH,AL AND AH,88H MOV AL,AH OR AL,11H
程序段运行后,AH=_________,AL=_________。 AH=88H(2分),AL=99H
23、设DS=4000H,DI=0,内存单元4000F~40013H内容依次为02H,00H,38H,01H和40H,执行下面程序段后,(DS)=?,(CL)=?,(BX)=? MOV SI,[DI+0FH] MOV BX,[DI+10H] MOV AX,[DI+12H]
MOV DS,AX MOV CL,[SI+1]
(DS)=4001H,(CL)=40H,(BX)=3800H
24、XOR AX,AX MOV BX,2 MOV CX,10 LP:ADD AX,BX ADD BX,2 LOOP LP
1)该程序段的功能是什么?
2)程序执行后,(AX)=?,(BX)=?,(CX)=?
2、1)实现求2+4+?+20的和;2)(AX)=110;(BX)=22;(CX)=0 25、阅读以下程序代码,分析:
MOV BX,1
XOR AX,AX MOV CX,5
NEXT:ADD AX,BX INC BX
LOOP NEXT
上述程序段执行后AX=_______;BX=_______。 (AX)=000FH,(BX)=0006H 26、阅读以下程序代码,分析:
A: XOR CMP JZ SHL JNC INC DL,DL AX,0 BYE AX,1 B DL
B: JMP BYE: ……
A
试说明该程序段完成的功能。
该程序段完成的功能是统计AX中1的个数。 27、试分析下面的程序段完成什么功能?
MOV CL,04
SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL
程序功能:将(DX)(AX)中双字内容左移4位。 28、DA1 DB ?01234?
DA2 DB 5DUP(0) MOV SI,0 MOV CX,5
LOP:MOV AL,DA1[SI]
ADD AL,11H OR AL,01H
MOV DA2 [SI],AL INC SI LOOP LOP
1) 程序执行完后,写出DA2各字节的数据。
2) 程序中MOV AL,DA1[SI]指令的操作数是什么寻址方式? 1)41H,43H,43H,45H,45H;2)寄存器相对寻址
29、在某子程序的开始处要保护AX、BX、CX、DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如:
PUSH AX
PUSH BX ;保护现场 PUSH CX PUSH DX ……
;恢复现场
试写出恢复现场时的指令序列。 POP DX POP CX POP BX POP AX
30、指出下列指令源操作数的寻址方式: MOV AX,ES:[BX] 寄存器间接寻址方式 MOV AX,20[BX+SI] 相对基址变址寻址方式 MOV AX,ARRAY 直接寻址方式 MOV AX,[BX+DI] 基址变址寻址方式 MOV AX,1200H 立即寻址方式
程序填空题
1、下述程序段完成计算2~20之间的偶数的和,并将结果存于AX中,试把空白处填上适当的指令(每一空白只填一条指令) XOR AX,AX MOV BX,0 MOV CX,11 CONT:ADD AX,BX ADD BX,2 LOOP CONT
(第一空MOV CX,11,第二空ADD BX,2) 2、下面程序段判断A单元的有符号数,并根据其值小于0,等于0,大于0,分别将0FFH,00H,01H送入B单元中。在空白处填上适当的指令(每一空白处只填一条指令) MOV AL,A CMP AL,0 JLE AA
MOV B,1
JMP DONE AA: JL BB MOV B,0 JMP DONE BB: MOV B,0FFH DONE:HLT
(第一空JLE AA,第二空JMP DONE)
3、下列程序段的功能是把0~9的数据转换为相应的ASCII码。请在每个空白处填上一条指令。 DAT DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ASC DB 10 DUP(?) COUN=ASC-DAT LEA SI,DAT
LEA DI,ASC MOV CX,10 LOP:MOV AL,[SI]
ADD AL,30H MOV [DI],AL INC SI INC DI LOOP LOP HLT
(第一空MOV CX,10,第二空 ADD AL,30H或OR AL,30H)
4、下面程序完成将0100H开始的100个字节数据搬移到从0180H开始的存储单元中,设DS、ES已设置好且其值相等。在每个空白处填上一条适当的指令。
MOV SI,0100H MOV DI,0180H MOV CX,100 CLD
REP MOVSB
(参考答案MOV CX,100、REP MOVSB)
5、设字符串的段地址、偏移地址和长度已经分别存于DS、SI和CX中,要统计其中字符“P”的个数,并存于DL中。试把空白处填上适当的指令(每一空白只填一条指令) MOV AL,?P? MOV DL,0 NEXT:CMP AL,[SI] JNZ/JNE CONT INC DL CONT:INC SI LOOP NEXT (第一空JNZ/JNE CONT,第二空 LOOP NEXT)
6、某程序段要用单个字符显示的2号DOS功能调用去显示一字符串“STRING”。试在下面空白处填上适当的指令
STR1 DB ‘STRING’,’$’ ?? ?? ??
MOV BX,OFFSET STR1 LOP:MOV DL,[BX] MOV AH,02H INT 21H INC BX
__ CMP [BX],‘$’ JNE LOP
(第一空 INC BX,第二空 CMP [BX],‘$’)
7、在以BLOCK为首地址的数据区存放了一组带符号数,下面程序的功能将该数据中所有的负数累加起来,然后再求其绝对值,并送入SUM单元。试在程序中填补上空缺的指令。
DATA DB 60,70,-28,-99,-100,-25,?,97 SUM DW ?
MOV CX,SUM-DATA XOR DX,DX
MOV BX,OFFSET DATA LOP: MOV AL,[BX] TEST AL,80H JZ NEXT CBW
ADD DX,AX NEXT:INC BX
LOOP LOP
NEG DX MOV SUM,DX
(第一空 JZ NEXT,第二空 NEG DX)
8、在以ARRAY为首地址的数据区存放了一组带符号数,下面程序的功能将该数据中所有的负数送入ARRAY1数据区,其余送入ARRAY2中。试在程序中填补上空缺的指令
ARRAY DB 25,63,-103,2,75,75,-1,-65,?,100 N EQU $-ARRAY ARRAY1 DB N DUP(?) ARRAY2 DB N DUP(?) ??
MOV CX,N MOV BX,0 MOV SI,0 MOV DI,0
LOP: MOV AL,ARRAY[BX] CMP AL,0 JAE NEXT1
MOV ARRAY1[SI],AL INC SI JMP NEXT2
NEXT1:MOV ARRAY2[DI],AL INC DI NEXT2:INC BX LOOP LOP
(第一空 MOV ARRAY1[SI],AL; 第二空 MOV ARRAY2[DI],AL)
9、下述程序段完成计算1+2+?+10的和,并将结果存于AX中,试把空白处填上适当的指令(每一空白只填一条指令) XOR AX,AX MOV BX,0 MOV CX,11 CONT:ADD AX,BX INC BX LOOP CONT
参考:MOV CX,11;LOOP CONT
10、下述程序段完成计算2~20之间的偶数的和,并将结果存于AX中,试把空白处填上适当的指令(每一空白只填一条指令)
XOR AX,AX MOV BX,0 MOV CX,11 CONT:ADD AX,BX
ADD BX,2 LOOP CONT
MOV CX,11;ADD BX,2
11、下列程序段的功能是把0~9的数据转换为相应的ASCII码。请在每个空白处填上一条指令。
DAT DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ASC DB 10 DUP(?) CON=ASC-DAT LEA SI,DAT
LEA DI,ASC
MOV CX,CON LOP:MOV AL,[SI] ADD AL,30H
MOV [DI],AL INC SI INC DI LOOP LOP HLT
MOV CX,CON;ADD AL,30H或OR AL,30H
12、某程序段要用单个字符显示的2号DOS功能调用去显示一字符串“STRING”。试在下面空白处填上适当的指令
STR1 DB ‘STRING’,’$’ ?? ?? ??
MOV BX,OFFSET STR1 LOP:MOV DL,[BX] MOV AH,02H INT 21H (1)
(2)
JNE LOP (1)INC BX (2)CMP BX,?$? 13、设字符串的段地址、偏移地址和长度已分别存于DS、SI和CX中,要统计其中字符“P”的个数,并存于DL中。试把空白处填上适当的指令。
MOV AL,‘P’ MOV DL,0 NEXT:CMP AL,[SI] JNE CONT INC DL CONT:INC SI LOOP NEXT 1)JNE CONT或JNZ CONT;2)LOOP NEXT
14、下面程序段完成用串指令在DA1开始的26个字节单元中依次存放A-Z的ASCII码,在DA2开始的26个字节单元中依次存放Z-A的ASCII码,请在横线处各填一条指令。 DA1 DB 26 DUP(?)
正在阅读:
2015年6月汇编语言程序设计-试题库(给学生复习)12-02
夏天减肥计划 甩走肥肉君11-11
最新六年级下册海西家园教案07-05
人教版一年级下册语文各单元知识点归纳12-03
我家楼下的桂花树作文800字06-27
卓商塑料网 - 2013年中国塑料制品行业概况 行业数据 产量统计 塑料薄膜产量排名01-14
H如何提高大管径厚壁管道焊接的功效04-11
抓校本教研03-24
五年级几何体的表面积与体积的计算11-25
2015集成电路课程设计04-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 试题库
- 汇编语言
- 程序设计
- 复习
- 学生
- 2015
- 上海市奉贤区高三4月调研测试(二模)数学试题 Word版含答案
- 教育心理学概论试题
- 管理学院2018年工程硕士复试科目
- 一年级少先队活动课教案(完整版)
- 国内外复杂地质条件下井巷掘进与支护技术修改 - 图文
- 教科版五年级上册科学板书及教学反思
- 江苏省徐州市黄山外国语学校七年级数学上册 2.3 数轴(第2课时)教学案(新版)苏科版
- SAP FICO常见问题及解决方案要点 - 图文
- 三谈“胡”与“狐”
- 2014年经济学知识:无差异曲线上任一点上两种商品的边际替代率理论考试试题及答案
- 党的作风建设的历史考察及其启示
- 高考励志文章:高考是一种历练
- 2017年辽宁省沈阳市中考数学试卷及解析
- 让孩子从小讲文明懂礼貌
- 超高层建筑的电梯运行管理及维修维护管理方案1
- 2015年继续教育考试题目和答案
- 校园文化建设中长期发展规划
- 数据库模拟试题1
- 商法概论
- 中国酸性蛋白酶产业竞争现状深度分析与企业投资战略评估报告