汇编语言程序设计 中国大学Mooc郑州大学 网课 测试题目和答案

查找方法:直接在网页进行搜索(ctrl+F)
视频后的题目
从应用角度看,汇编语言程序员可以将计算机抽象为 寄存器、存储器地址、输入输出地址
IA-32处理器支持8个32位通用寄存器。 对
IA-32处理器中ESP是堆栈指针寄存器。 对
如下哪个符号不是IA-32处理器的通用寄存器名 EDP
IA-32处理器中被称之为累加器通用寄存器是EAX。 对
IA-32处理器的逻辑地址包括偏移地址。 对
一个字节(Byte)是指二进制多少位? 8
IA-32处理器具有32位地址,能直接访问的主存储器容量是 4GB
IA-32处理器保存将要执行指令在主存中的存储器地址的寄存器是: EIP
IA-32处理器保存标志的寄存器是: EFLAGS
IA-32处理器的CS是代码段寄存器。 对
IA-32处理器的ESP与SS配合指向堆栈段当前栈顶。 对
指令“mov eax, 100”的源操作数是: 100
助记符MOV表达的指令功能是: 传送
在MASM的语句语法中,指令的目的操作数一般在左边,源操作数在右边。 对
指令一般由操作码和操作数组成。 对
IA-32处理器的指令所采用的二进制编码长度均是32位(Bit)。 错
汇编语言源程序中,每个语句由四项组成,不影响语句功能的是: 注释
语句“msg byte 13,10,0”中,关键性的助记符是: byte
MASM的语句分成执行性语句和说明性语句。 对
MASM汇编语言的分隔操作数使用英文逗号,不能用中文逗号。 对
MASM汇编语言的注释用分号开始,无所谓英文分号还是中文分号,都可以。 错
物理地址也称逻辑地址,也是虚拟地址。
应用程序一般主要涉及代码段、数据段和堆栈段。
IA-32处理器的DS是数据段寄存器。
可执行代码(语句)应该在______定义的段中。 .code
汇编结束也就是程序执行终止。 错
为IA-32处理器编程只应该使用8086的16位指令。 错
定义要显示的字符串可以使用的伪指令是 byte
本课程使用“exit 0”表达 程序执行终止
C语言使用函数名(含参数)就是调用函数,IA-32处理器需要使用“CALL”调用指令实现调用。 对
汇编程序的作用是: 将汇编语言程序转换为机器代码
MASM开发软件中的“ml.exe”是指: 汇编程序
人们常会将汇编语言程序简称为汇编程序,但严格来说,两者是不同的。 对
本课程主要采用MASM 6.x版本。 对
程序设计语言的开发环境通常要包括连接程序(例如,常用的文件名是LINK)。 对
32位Windows XP/7/8等操作系统中,启动控制台窗口的文件是: cmd.exe
32位Windows控制台与16位模拟DOS窗口的界面和基本功能相同,所以本质上就是同一个程序。 错
32位Windows XP/7/8等操作系统中,启动16位模拟DOS窗口的文件是: comm.com
32位中文Windows XP/7/8等操作系统中,Windows控制台窗口也支持中文的输入输出。 对
如果源程序文件没有错误,列表文件就为空。 错
开发过程中生成的目标模块文件(.OBJ)与列表文件(.LST)一样都是文本性质的文件,可以使用文字编辑软件打开。 错
MASM汇编语言中,表示十六进制数的后缀字母是 H
按照MASM语法,“AH”是一个8位寄存器,“0AH”表达十六进制数。 对
MASM汇编语言中,表示二进制数的后缀字母是 B
下面指令可以定义数据-1的指令是: byte  0FFH
指令byte 100 定义的数据是: 64H
汇编语言中,表达真值“100”,可以使用二进制“01100100B”表达。 对
小写字母“d”作为字符,它在主存中与十六进制数“64H”是一样的。 对
汇编语言中,表达真值“13”,可以使用十六进制数“0DH”表达。 对
MASM定义变量的伪指令不包括: equ
MASM定义变量必须有变量名,否则不能定义。 错
语句“byte 5 dup(1,2)”分配主存的存储单元个数是: 10
MASM使用“byte”定义的变量,与C语言的变量类型对应的是: char
分配一个字节空间的伪指令是: byte
定义字符串也可以使用字节变量定义伪指令“BYTE”。 对
数值“356”可以作为BYTE伪指令定义的变量初值。 错
语句“word 5 dup(1,2)”分配主存的存储单元个数是: 20
语句“word -1”在主存分配的数据用十六进制表达是: FFFFH
数值“356”可以作为WORD伪指令定义的变量初值。 对
以32位数据分配存储空间的伪指令是: dword
关于MASM语句“dvar dword ?”的说法正确的是: dvar变量无初值,占有4个主存存储单元
伪指令“DWORD”定义的32位变量要占用4个字节存储空间。 对
伪指令“dword”只能定义无符号整数为变量初值。 错
MASM定义无初值变量使用“?”符号,但通常汇编程序填入0。 对
在IA-32处理器中,语句“dvar6 dword 38323139h”为变量dvar6所在的4个存储单元最高地址中分配的数值是: 38H
Intel 80x86系列处理器采用小端(Little Endian)方式存储多字节数据。 对
存储多字节数据采用小端方式一定比大端方式好,因为没有处理器采用大端方式。 错
返回变量名所在段的偏移地址的操作符是: offset
指令“org $ 10H”的作用是: 下一条机器码和当前地址之间有10H个内存空间。
变量的地址属性是指变量所在存储单元的逻辑地址,包括段基地址和偏移地址。 对
bvar是一个字节变量,语句“mov al ,bvar”与“mov al ,[bvar]”功能相同。 对
指令“MOV EAX, VAR 2”与“MOV EAX, VAR[2]”功能相同。 对
将变量按照指定的类型使用的类型操作符是: PTR
双字变量的类型值是: 4
本课程提供的子程序DISPRD可以显示8个32位通用寄存器的内容。 对
寻址方式的含义是指通过地址访问指令或数据的方法。 对
指令寻址是指确定要执行的下一条指令的地址。 对
指令操作数来自处理器的寄存器,被称为寄存器寻址。但把指令操作数保存于处理器的寄存器,就不能被称为寄存器寻址。 错
变量指向存储单元,所以访问变量就是存储器寻址。 对
语句“mov al,12h”中采用立即数寻址的部分是: 12h
语句“mov eax,offset dvar”中(dvar是一个变量)采用立即数寻址的部分是: offset dvar
立即数是指从指令的机器代码中直接取得的操作数。 对
语句“mov edx,type dvar”中(dvar是一个双字变量)源操作数采用立即数寻址。 对
源操作数采用寄存器寻址的指令(var是一个变量)是: mov var, eax
语句“mov eax, ebx”的两个操作数都是采用寄存器寻址方式。 对
语句“mov bvar, cl”目的操作数的寻址方式是寄存器寻址方式。 错
MASM中,语句“mov si,edi”有语法错误。 对
语句“mov dx, ds”的源操作数不是寄存器寻址方式。 错
使用EBP或ESP作为基址寄存器,操作数默认是在: 堆栈段
存储器寻址的操作数当然在主存储器中了。 对
存储器操作数由逻辑地址指示,一定要表达出段基地址。 错
源操作数采用存储器的直接寻址的指令(var是一个变量)是: mov ebx, var 2
直接寻址把存储器操作数的有效地址直接编码进指令的机器代码中。 对
在MASM语法中,语句“mov eax,dvar”和“mov eax,[dvar]”是同一条指令,其中dvar是一个双字类型的变量(名)。 对
MASM规定直接寻址只能用具体的地址值直接表达,不能使用变量名等形式表达。 错
dvar1和dvar2分别为双字变量,指令“mov dvar1, dvar2”是否正确? 错
存储器的寄存器间接寻址中,寄存器相当于一个地址指针的作用。 对
指令“mov [edi], al”的功能是将AL寄存器的值传送到 数据段中、EDI间接寻址的主存中
指令“mov ebx, [ebx]”的源操作数采用寄存器间接寻址。 对
MASM中,“EBX”和“[EBX]”都表示EBX寄存器的内容,含义是一样的。 错
指令“mov eax, count[esi]”中源操作数的寻址方式是: 寄存器相对寻址
在MASM支持的语法中,与[ebx 8]含义不相同的表达方式是(其中eight是一个常量,是数值8): [ebx8]
源操作数不是寄存器相对寻址的指令是: mov eax, [ebx]
语句“mov [edi], [esi 4]”是非法指令。 对
实现32位数据传送的指令是: mov eax, [edx]
下面指令哪一条可以完成将edi寄存器的值保存至存储单元的功能? mov [eax], edi
32位的IA-32处理器只支持32位数据操作,不支持8位或16位数据操作。 错
指令“mov edx,0ffh[ebx]”中,“0ffh”是立即数寻址方式的立即数。 错
已知var是一个变量,与指令“lea ebx,var”相同功能的语句是: mov ebx,offset var
已知dvar是一个变量,下面指令错误的是: mov edx, offset [esi edi
4 100h]
指令“lea eax,[ebx]”是一条语法正确的指令。 对
指令“lea eax,[ebx 10]”是一条语法正确的指令。 对
指令“mov eax, offset [ebx 10]”是一条语法正确的指令。 错
执行指令“push eax”后、接着执行指令“pop edx”,其功能与下面哪条指令相同。 mov edx, eax
如下错误的指令是: push [ebx]
指令“PUSH EDI”执行后,寄存器ESP被加4。 错
IA-32处理器完成一条加减运算指令,如果是针对无符号数的加减运算就影响CF标志,而如果是有符号数的加减运算就影响OF标志。总之,加减运算只会影响CF或OF之一,不会同时进行设置。 错
哪个不是IA-32处理器的状态标志 TF
两个整数相减等于0,则标志正确的是: ZF=1,PF=1,SF=0
IA-32处理器的奇偶标志PF关注的是32位结果中“1”的个数是偶数还是奇数。 错
若eax=12345678H,则“add al,27h”执行后的结果为: eax=1234569FH
若AL=100,则“add al,200”执行后的结果为: AL=44
加法指令ADD的运算结果影响状态标志的取值。 对
IA-32处理器的ADD加法指令只进行32位数据的加法操作。 错
IA-32处理器的ADD加法指令进行16位数据的加法,如果有进位则自动进入高1位数据结果中。 错
若AL=200,则“sub al,100”执行后的结果为: AL=100
若eax=12345678H,则“sub al,27h”执行后的结果为: eax=12345651H
减法指令SUB的运算结果影响除进位CF标志之外的其他状态标志。 错
对EAX中的整数进行求补运算的指令是: neg eax
假设EDX=6,执行如下哪条指令后EDX=5? dec edx
“NEG EAX”指令的功能是用0减去EAX内容,差值结果保存在EAX。 对
使得ECX=0,同时设置CF=OF=0的指令是: xor ecx,ecx
能将EDX中的0变成1、1变成0的指令是: NOT EDX
“ EAX, 1”指令可以将EAX最低位为置1。 错
“OR EAX, 1”指令可以将EAX最低位为置1。 对
“XOR EAX, 1”指令可以将EAX最低位求反。 对
指令“sar eax, 1”执行后,EAX的最高位一定是: 与次高位相同
指令“shr eax, 1”执行后,EAX的最高位一定是: 0
逻辑左移和算术左移的功能相同。 对
逻辑右移和算术右移的功能相同。 错
指令“shl eax, 4”是将EAX内容左移4位。 对
MASM使用RCL助记符代表的指令是: 带进位循环左移指令
指令“ror eax, 1”执行后,EAX的最高位一定是: 与进位CF标志相同
带进位循环右移指令RCR执行后,CF标志被设置为0。 错
如果EAX保存一个无符号整数,移位指令“shl eax,3”可以实现: EAX数值乘以8
指令“shl eax, 1”执行后,EAX的最低位一定是: 0
对二进制表达的整数来说,左移一位相当于数值乘以2。 对
对二进制表达的整数来说,右移一位相当于数值除以2。 对
理论上,任意两个整数相乘都可以移位、配合加减运算实现。 对
IA-32处理器(循环)移位指令不支持的数据位数是: 64
使用2条32位(循环)移位指令实现64位数据逻辑右移的执行顺序依次是: shr、rcr
已知qvar是用qword定义的64位类型的变量,IA-32处理器的指令“shr qvar,1”存在语法错误。 对
IA-32处理器的乘法指令“mul ebx”产生的乘积保存在的寄存器是: EDX和EAX
用语句“sum qword ?”定义的一个4字(64位)变量sum,存取其高32位数据部分的正确指令是: mov edx,dword ptr sum 4
对由EDX(高32位)和EAX(低32位)保存的64位无符号整数进行逻辑右移一位操作,可以使用两条32位(循环)移位指令实现,它们是: shr edx和rcr eax
用语句“sum qword ?”定义的一个4字(64位)变量sum,与32位EAX类型不一致,所以“mov sum, eax”存在语法错误。 对
IA-32处理器的乘法指令“mul ebx”产生的乘积是64位的。 对
buffer指向一个字符串缓冲区,bufsize是一个符号常量,指令“mov dword ptr buffer bufsize-13, ebx”的目的操作数的寻址方式是: 直接寻址
语句“buffer byte 12 dup(0)”为变量buffer预留了: 12个初值为0的存储单元
MASM中,助记符“CPUID”是IA-32处理器的一条处理器识别指令,该指令能够反馈处理器的有关信息。 对
相对来说,指令寻址中最常用、也最灵活的跳转寻址方式是: 相对寻址
指令寻址不支持的跳转寻址方式是: 立即数寻址
指令寻址是指一条指令执行后,确定执行的下一条指令的位置的方式。 对
IA-32处理器中,执行一条指令后,设计指令指针EIP自动增量,实现了指令的顺序寻址。 对
已知nvar是一个变量,指令“jmp nvar”所采用的指令寻址方式是: 存储器间接寻址
指令“JMP EAX”所采用的指令寻址方式是: 寄存器间接寻址
已知label是某条之前的标号,指令“jmp label”的功能是让处理器执行label指示的那条指令。 对
JMP指令的功能对应C语言的goto语句,按照高级语言的结构化思想,汇编语言中也不应使用JMP指令,处理器可以不必设计JMP指令。 错
IA-32处理器设计使用一个字节表达位移量的相对寻址的短转移是为了减少机器代码的长度,提供更紧凑的指令代码、占用更少的存储空间。 对
条件转移指令JC发生跳转的条件是: CF=1
执行条件转移指令Jcc,如果条件cc不成立,则顺序执行下一条指令。 对
条件转移指令Jcc利用的条件需要利用CMP、TEST等影响标志的指令产生。 对
对二进制数来说,偶数的最低位一定是0。 对
将EAX内容加1可以使用的指令是: add eax,1
指令“shr eax,1”把EAX最低位移入了: CF
判断进位标志CF=0发生跳转,使用JNC指令。 对
指令“shr eax,1”执行后,EAX最高位是0。 对
指令“mov eax,offset no_msg”获取用no_msg表示的字符串地址,其源操作数的数据寻址是: 立即数寻址
指令“test eax,02h”执行后,EAX等于: 不变
指令“TEST EAX, 01H”常用于测试EAX中的D1位。 错
EAX内保存一个有符号整数,执行“cmp eax,0”指令后,希望EAX小于0时跳转到done标号处,应使用的条件转移指令是: jl done
条件转移指令JGE发生转移的条件是: 有符号整数大于等于
这里的“单分支结构”是指条件不满足顺序执行分支体,条件满足跳过分支体执行。 对
不论EAX保存什么整数,指令“neg eax”都可以实现求EAX绝对值的功能。 错
下面哪一条指令可以将AL中存放的英文大写字母变为小写字母? or al,20h
下面哪一条指令可以将AL中存放的英文小写字母变为大写字母? sub al,20h
JB和JA指令都属于处理器的程序流程控制指令。 对
大写字母“A”的ASCII值是61H。 错
指令“mov al, 1”执行后,AL等于: 1
指令“mov al,‘0’”执行后,AL等于: 30H
不能将EBX的最高位移入CF标志的指令是: sar ebx, 1
指令“mov dvar3,eax”进行是多少位的数据传输? 32
指令“mov dvar3,eax”目的操作数和源操作数的数据寻址方式分别是: 直接寻址、寄存器寻址
通用处理器中普遍采用补码表达有符号整数。 对
用8位进制补码表达一个有符号整数,数值“-150”无法表达。 对
两个有符号整数加减运算后,结果是否溢出应使用JO或JNO指令判断。 对
IA-32处理器的LOOP指令隐含使用哪个寄存器作为计数器? ECX
IA-32处理器的LOOP指令先对ECX是否为0进行判断,然后再执行对ECX寄存器减1的操作。 错
array指向一个数组,指令“add eax,array[ebx*(type array)]”的源操作数寻址方式是: 带比例的寄存器变址寻址
数据段有语句“array dword 136,-138,133,130,-161”,则“type array”等于: 4
指令“xor eax,eax”的作用是让寄存器EAX等于0。 对
汇编语言程序中,只能实现“先循环、后判断”,不能实现“先判断、后循环”结构。 错
C语言的语句“for(i=100; i>0; i–) sum=sum i;”对应这里的减量计数控制循环。 对
有50个数值,使用循环结构逐个比较方法求出最大值,程序的循环次数是: 49
数据段有语句“array dword -3,0,20,900,-56”,则“lengthof array”等于: 5
采用寄存器间接寻址从头开始访问数组的每个元素,初始通常应将该寄存器赋值为数组首地址。 对
LOOP指令适合实现减量计数控制循环。 对
对于字符串string,如果使用寄存器相对寻址“string[ebx]”访问其头一个元素,EBX应该赋值为: 0
指令“cmp al,0”执行后,指令“jz done”发生转移时,AL寄存器: 等于0
条件控制循环通常需要使用条件转移指令进行是否继续循环的判断。 对
在汇编语言程序层面,条件控制循环结构与分支结构有相通的地方,循环体可以看做是需要多次执行的分支体。 对
指令“call eax”的指令寻址是: 寄存器间接寻址
IA-32处理器调用子程序前,将返回地址保存在: 堆栈段
主程序调用子程序使用CALL指令。 对
子程序返回主程序利用RET指令。 对
RET指令通常应该是子程序最后一条执行的指令。 对
指令“mov esi,[ebp 4]”的源操作数来自: 堆栈段
IA-32处理器的CALL指令压入堆栈的返回地址是CALL指令下条指令的地址。 对
语句“call next”之后,接着是语句“next: pop eax”,执行这两个指令后,EAX保存当前指令、即pop指令,也就是标号next的地址。 对
子程序设计应该关注的原则中,不正确的是: 子程序不允许递归
MASM的过程定义伪指令PROC说明过程(含子程序)开始,与之配合子程序结束时还有一个伪指令是: ENDP
DOS/Windows操作系统下,控制显示器光标回到下行首列,需要两个控制字符,它们的ASCII值是: 0dh,0ah
过程定义PROC是一条处理器指令。 错
子程序设计无需关注参数传递问题。 错
一个双字(二进制32位)数据,以十六进制形式显示,需要显示十六进制多少位? 8
对数值0~9,只要加30H,就依次成为字符’0’~’9’的ASCII码。 对
这里的共享变量对应C/C 语言的全局变量。 对
temp是定义在数据段的变量,主程序将数据保存在temp变量中,子程序从该变量中取用数据,这是什么参数传递方式? 共享变量
对于大量保存在主存储器缓冲器的参数,通常只能通过传递地址的方式,也被称为“传递引用”。 对
共享变量的参数传递方式只适合传递子程序返回给主程序的出口(输出)参数。 错
输入二进制数的正确数字应该只有0和1。 对
除法指令“idiv ecx”的64位被除数在: EDX和EAX中
主程序压入堆栈8个字节数据传递给子程序,平衡堆栈时需要将ESP: 加8
在80x86处理器上,C语言进行函数调用带入的参数实质上就是采用堆栈传递参数。 对
IA-32处理器中,利用EBP(或ESP)、而不是EBX、ESI等间接或相对寻址访问堆栈,是因为EBP(或ESP)间接或相对寻址的默认逻辑段是堆栈段。 对
语句“include io32.inc”说明采用什么MASM支持的多模块方法。 源文件包含
MASM包含源程序文件使用的伪指令是: include
MASM中使用PUBLIC伪指令说明某个变量、子程序等可以被其他模块文件调用。 对
源文件包含的方式需要将多个源程序文件分别汇编。 错
语句“includelib io32.lib”说明采用什么MASM支持的多模块方法。 库文件包含
存入子程序库的子程序都应该利用PUBLIC说明,表示其他程序模块可以调用。 对
进行宏定义,在MASM中使用macro开始,需要使用__________结束。 endm
宏的特点不包括: 宏调用要CALL指令转向、RET指令返回
宏调用在汇编时进行程序语句的展开,不需要返回。 对
MASM中,宏需要先定义后使用,且不必在任何段中。 对
宏也封装了一段程序,所以与子程序本质上相同。 错

单元测试的题目
寄存器EDX的低8位部分可以用__________表达。 DL
应用程序具有3个基本段,可执行指令应该保存于__________。 代码段
如下符号_____________不是MASM支持的关键字。 done
汇编语言的优点不包括_____。 编程容易
编写汇编语言源程序文件,应使用______。 编辑程序
IA-32处理器采用以字节为基本存储单位为主存空间编址。 对
指令指针EIP寄存器属于通用寄存器。 错
利用“END”伪指令就可以结束程序执行,返回操作系统。 错
伪指令“END”仅说明汇编到此结束,并不具备返回操作系统的功能。 对
MASM汇编语言的注释用分号开始,但不能用中文分号。 对
用8位二进制补码表达真值“-7”,其编码是_________。 11111001
BYTE伪指令定义的是______量的变量。 字节
DWORD伪指令定义的是______量的变量。 双字
能够为变量BVAR定义10个数值为0的语句是___________。 BVAR byte 10 dup(0)
对于采用BYTE伪指令定义的变量具有的类型属性是______。 BYTE
在文字编辑软件中,按下键盘上的空格键往往显示空白,所以ASCII的空格编码不是字符编码。 错
伪指令“dvar dword a0b0h”没有语法错。 错
语句“mov al,ffh”没有语法错。 错
伪指令“dvar dword 5 dup(0)”定义的变量dvar占用5个字节存储空间。 错
“TYPE EDX”的结果是一个常量,等于2。 错
计算机中每个主存储单元具有一个地址,其中存放一个__________量。 字节(8位)
下面_____________语句有语法错误。 again: byte 20
在DOS/Windows操作系统中,汇编语言源程序文件通常采用______作为扩展名。 ASM
将一个或多个目标代码文件合成为可执行文件的过程,称为_________。 连接
尽管用汇编语言生成的执行代码较庞大,但其能够直接有效地控制硬件。 错
指向程序堆栈区的段寄存器是SS。 对
MASM汇编语言用逗号分隔两个操作数或者参数,英文逗号或者中文逗号都可以。 错
十进制数165用二进制表达为______。 10100101
真值“-8”用8位二进制补码表达是_________。 11111000
有一个32位整数编码,在IA-32处理器的主存中占用4个字节空间,起始于405000H地址,则最高字节存放的地址是________。 405003H
变量var定义是“var byte 26h, 4ah”,欲以字属性存取该变量值,应采用________var。 word ptr
已知01100100是采用BCD编码的二进制串,它表达整数的真值64。 对
0307H是一个非压缩BCD码,它表达的真值是37 。 对
对于常数41H,在汇编语言中表达成字符’A’也是正确的,因为’A’的ASCII码就是41H。 对
伪指令“dvar dword 5 dup(0)”定义的变量wvar占用20个字节存储空间。 对
IA-32处理器采用小端方式存储多字节数据。 对
指令“mov eax,3456h”的源操作数采用__________寻址方式。 立即数
假设VAR为变量,指令“MOV EBX, OFFSET VAR”的源操作数寻址方式是______。 立即寻址
IA-32处理器的存储器寻址方式中,带有比例的是__________。 变址寻址
指令“mov eax,[ebp edi]”从__________段取出数据送EAX。 SS
关于指令“mov eax,[ebx esi6]”的说法正确的是________。 源操作数表达的寻址方式是错误的
立即数寻址只会出现在源操作数中。 对
存储器寻址方式的操作数当然在主存了。 对
IA-32处理器的有效地址是指存储器操作数的偏移地址。 对
指令“mov ebx, [ebx]”是一条正确的指令。 对
MASM中,“[ebx 8]”和“[ebx
8]”含义相同。 错
指令“mov ax,3456h”是一个__________量传送。 字(16位)
假设array是一个32位变量,与“lea ebx, array”指令相同功能的指令是_____________。 mov ebx, offset array
已知names是一个如下定义的变量:manes  byte  ‘Tom bush’  符合汇编语言语法的正确语句是______。 lea edi,names[ebx]
真值-1,用8位二进制补码表示是11111111,如果用16位二进制补码表示是________。 1111111111111111
指令__________实现对EAX当中D15和D0位设置为1,其他位不变的功能。 or eax,8001h
指令“mov bx,eax”的错误原因是数据类型不匹配。 对
ADD指令的某个加法运算结果使标志ZF=1,则标志SF为0。 对
虽然ADD指令和SUB指令执行后会影响标志状态,但执行前的标志并不影响它们的执行结果。 对
执行“cmp eax,ebx”后,EAX和EBX寄存器内容都没有改变。 对
执行“test eax,ebx”后,EAX和EBX寄存器内容都没有改变。 对
8位补码F3H要扩展成16位补码应该是__________,这样其真值才不变。 FFF3H
能实现寄存器EAX的内容乘以2的指令是______。 shl eax,1
8位补码10010100算术右移一位后,其结果为________。 11001010
使用2条32位(循环)移位指令实现64位数据逻辑左移的步骤依次是__________。 shl、rcl
语句“sum dword ?”定义一个变量sum,语法不正确的语句是: mov sum[4], al
无符号数在前面加零扩展,数值不变。 对
算术右移指令执行的操作是:符号位不变,并顺次右移1位,最低位移出。 对
因为EDX保存的是无符号整数,所以指令“shr edx,1”可以换做“sar edx,1”。 错
在明确EDX保存的是一个正整数的条件下,指令“SHR EDX,1”与“SAR EDX,1”完成的功能相同。 对
数据段有语句“sum qword ?”,代码段指令“mov sum, eax”并不存在语法错误。 错
已知NVAR是一个变量,指令“JMP NVAR”所采用的指令寻址方式是______。 存储器间接寻址
MASM中,实现段间转移的转移类型属性是______。 FAR
条件转移指令Jcc采用指令寻址的__________方式。 相对寻址
已知EBX和ECX保存着有符号整数,指令“cmp ebx, ecx”执行后,下条指令“jl first”在__________条件下发生转移? EBX小于ECX
下面程序片段条件转移语句发生跳转的条件是AL=______。cmp al,80hjnb next 80h
JMP指令的功能对应C语言的goto语句,按照高级语言的结构化思想,汇编语言中也不应使用JMP指令,处理器也不必设计JMP指令。 错
条件转移指令JC和JB虽然是两个助记符,但却是同一个指令。 对
执行JNZ指令发生转移的条件是ZF=1 。 错
执行JNS指令顺序执行的条件是SF=1 。 对
采用偶校验对数据编码,8位二进制编码“101001001”符合偶校验规则。 对
JECXZ指令发生转移的条件是__________。 ECX=0
设置ECX=100后,语句“delay: loop delay”会循环执行______次。 100
若ECX=0,则语句“AGAIN: LOOP AGAIN”将会重复执行_____________次。
如果程序需要连续访问大型数组中的每个元素,不适宜采用的存储器寻址方式是: 直接寻址
对于字符串string,如果使用寄存器间接寻址“[ebx]”访问其头一个元素,EBX应该赋值为: 字符串首地址
IA-32处理器的LOOP指令常用于增量计数的循环控制。 错
IA-32处理器的LOOP指令包含有对ECX寄存器减1的功能。 对
循环初始值应该属于循环体之中。 错
通常循环体中应该包含进行循环条件修改的代码。 对
采用寄存器相对寻址从头开始访问数组的每个元素,初始可以将该寄存器赋值为0。 对
子程序最后,通常需要执行的返回指令是__________。 RET
IA-32处理器使用CALL指令调用子程序时,返回地址被保存到______。 当前堆栈顶部
MASM包含子程序库文件使用的伪指令是: includelib
关于宏汇编,如下论述错误的是_____________。 像子程序调用一样,宏指令需要使用CALL指令进行宏调用
进行宏定义的一对伪指令是_______。 macro / endm
子程序返回主程序使用RET指令。 对
过程定义PROC是一条MASM伪指令。 对
子程序不能进行嵌套调用。 错
分配在数据段的共享变量可用于主程序与子程序之间传递参数,这类似C语言的全局变量。 对
利用INCLUDE包含的源文件实际上只是源程序的一部分。 对
下列标号不合法的是_____________。 MOV
汇编语言源程序中,每个语句由四项组成,不影响语句功能的是_____________。 注释
MASM规定用后缀字母H或h表达十六进制数据。 对
源程序中只能用标号start表示程序的起始执行点。 错
采用汇编语言书写的一个ASM源程序文件,需要使用汇编语言程序转换为OBJ目标代码文件。 错
汇编程序(例如MASM)一般都提供大量的函数(过程)供程序员调用,所以汇编语言程序员通常不需要直接利用操作系统的资源。 错
二进制代码10000111是计算机内部一个8421 BCD编码,它表示的真值是________。 87
采用2的补码形式表示时,定点8位字长的字能表示的整数范围是______。 -128~127
计算机中有一个“01100001”编码。如果把它认为是无符号整数,它是十进制数___________;如果认为它是BCD码,则表示真值_____________。 97,61
指令“mov eax,3456h”的目的操作数采用__________寻址方式。 寄存器
指令“mov [ebx 8],eax”的目的操作数采用__________寻址方式。 寄存器相对
有效地址是指______。 存储器操作数的偏移地址
对某个通用寄存器内操作数进行访问的寻址方式被称为________。 寄存器寻址
IA-32处理器的有效地址是指存储器操作数的物理地址。 错
指令“mov eax,[ebx]”中有效地址EA是EBX的内容。 对
语句“mov [ebx],250”没有语法错误。 错
可以乘以比例的32位通用寄存器不包括ESP堆栈指针寄存器。 对
执行指令“push eax”后、接着执行指令“pop edx”,其功能与__________相同。 mov edx, eax
设EAX=1000H、EBX=2000H,则在执行了指令“SUB EAX, EBX”后,标志位CF和ZF的值分别为_____________。 l,0
对数值83A7H作逻辑非运算后的结果是______。 7C58H
设EAX=ABDFH,则执行指令“ EAX, 0lH”后,EAX寄存器为____________。 0001H
进位和溢出标志都表达结果超出范围,所以加法运算有溢出,一定也进位了。 错
指令“neg eax”的功能是求EAX的绝对值。 错
已知var是一个变量,语句“add esi,byte ptr var”有语法错误。 对
ASCII表中的每个字符对应一个编码,按无符号数理解,每个字符编码有大小,如下字符从小到大顺序正常的是___________。 空格字符,数码,大写字母
关于MASM语句“word  1”的说法正确的是___________。 与语句“byte  1,0”相同
MASM汇编语言中的变量有多种类型属性,但错误的类型是______。 字符型char
人们经常采用十六进制形式表达数据,这是因为计算机内部寄存器采用这种进制。 错
已知01100101是采用BCD编码的二进制串,它表达整数的真值101。 错
指令“MOV EAX, VAR 10”与“MOV EAX, VAR[2*5]”功能相同。 对
存储器寻址方式中寻址的操作数在__________中。 主存
指令“mov eax,cs:[edi 100h]”从__________段取出数据送EAX。 CS
语句“mov edx, eax”的两个操作数都是采用寄存器寻址方式。 对
程序运行通常需要在主存建立堆栈区域,它的存取方式是__________。 先进后出
能将AL最低位移入CF标志位的指令是________。 shr al, 1
能将CF标志位移入AL最低位的指令是: rcl al, 1
ADD指令的某个加法运算结果使标志ZF=1,则标志PF为0。 错
80减90(80-90)需要借位,所以执行结束后,进位标志CF=1。 对
处理器也称为__________。 CPU
已知EDX=12345678H,则DH=__________。 56H
一个字节的二进制位数是__________位。 8
对32位字长的IA-32处理器来说,其主存不能采用8位(字节)编址。 错
主存中的一个存储单元的物理地址不是唯一的。 错
使用简化段定义源程序格式,必须具有.model语句。 对
在IA-32处理器的主存中,假设物理地址10FF0H存放数据10H,物理地址10FF1H存放数据20H,物理地址10FF2H存放数据30H,如从物理地址10FF1H中取出一个字的内容是_____________。 3020H
已知dvar是一个双字变量,在“mov eax, offset dvar”指令中,EAX获得dvar变量的_____。 偏移地址
伪指令ORG只能用于数据段,指明变量开始的偏移地址。 错
指令“mov eax,2010”的目的操作数采用__________寻址方式。 寄存器
数据寻址的含义是指通过地址访问指令操作数(数据)。 对
寄存器间接寻址方式,操作数是在某一寄存器中。 错
假设ESP寄存器为3210H,则“PUSH EAX”指令执行后,ESP为_____________。 320CH
指令__________实现对EAX当中D15和D0位求反,其他位不变的功能。 xor eax,8001h
指令__________实现对EAX当中D15和D0位设置为0,其他位不变的功能。 eax,0ffff7ffeh
指令“mov eax,6735h”指令执行后,AL=67H 。 错
dvar是双字变量,指令“mov al, dvar”的语法正确。 错
堆栈的操作原则是“先进后出”,压入数据是PUSH指令、弹出数据是POP指令。 对
IA-32处理器系统中,堆栈的数据压入和弹出操作可以是字节、字或双字为单位。 错
IA-32处理器按逻辑段组织程序,数据变量应该且必须在数据段中。 错
将OBJ文件转换为EXE可执行文件的是______。 连接程序
数据段有语句“DWORD 25 DUP(?)”,它将占据主存__________字节存储空间。 100
针对ASCII码,关于字符“9”和数值9的说法正确的是___________。 数值9加上30H就可以转换为字符“9”的编码
对于采用DWORD伪指令定义的变量具有的类型属性是______。 DWORD
源操作数采用存储器的直接寻址的指令(var是一个变量)是________。 mov ebx, var 2
减法指令产生差值为38H则标志正确的是__________。 PF=0
ADD求和指令的结果最高位为1,则SF=__________。 1
执行8位二进制加法“99H 31H”后,标志位正确的是: ZF=0,PF=1,SF=1
空操作NOP指令其实根本没有指令。 错
NOP是空操作指令,所以处理器并不执行该指令。 错
符号扩展将数据位数加长,自然数据大小也相应增大。 错
SHL指令左移一位,就是乘10。 错
程序的顺序结构是不含分支、循环和调用的一条语句(指令)、一条语句(指令)逐个顺序执行的程序结构。 对
已知NVAR是一个变量,指令“JMP NVAR”中访问NVAR所采用的数据寻址方式是______。 存储器的直接寻址
指令“JMP EAX”所采用的指令寻址方式是______。 寄存器间接寻址
使用CMP指令比较两个有符号数之后,程序希望“大于”时发生转移,则应该使用的条件转移指令是__________。 JG
下面程序片段条件转移语句发生跳转的条件是AL=______。cmp al,0fbhjnl next 0ffh
指令“jmp ebx”的转移目标地址来自寄存器EBX。 对
对无符号数和有符号数进行加减采用同样的指令,所以比较两者大小的条件转移指令也可以采用同样的指令。 错
JA和JG指令的条件都是“大于”,所以是同一个指令的两个助记符。 错
使用LOOP指令控制计数循环,循环次数应赋予的寄存器是: ECX
若ECX=0,则LOOP指令和JECX指令都发生转移。 对
对应主程序CALL指令调用子程序,子程序结束通常采用______指令返回主程序。 ret
指令“CALL EBX”采用了指令的__________方式。 寄存器间接寻址
call指令执行后,堆栈的栈顶内容为______。 call指令的下一条指令的地址
CALL指令的执行并不影响堆栈指针ESP。 错
指令CALL的执行涉及堆栈操作。 对
堆栈操作需要保持压入和弹出的区域平衡,但当使用堆栈将主程序参数传递给子程序时就不必了。 错
子程序的开始时使用PUSH压入寄存器的顺序应于返回前POP寄存器的顺序相同,这样才能保证寄存器恢复正确。 错
宏调用与子程序调用一样都要使用CALL指令实现。 错
IA-32处理器读取指令,一定是在代码段中。 对
要设定从偏移地址100H开始安排变量或代码,MASM可使用______语句。 org 100h
在指令代码中,直接给出操作数本身的寻址方式,称为_________。 立即数寻址
当加减运行结果为0时,ZF=__________。 1
某次求和结果最高位为1,则SF=__________。 1
指令“mov [esi],[edi]”是错误的,因为IA-32处理器不存在这种传送组合。 对
执行“sar ebx,1”指令后,EBX最高D31位等于__________。 D30
数据左移运算是低位向高位移动,最低位补0。 对
判断两个数相等则跳转,最对应的条件转移指令是______。 JZ
如果EAX=100、EDX=200时,执行“CMP EAX, EDX”指令,接着__________条件转移指令会发生控制转移。 JB
如果EAX=101H、EDX=200H时,执行“CMP EAX, EDX”指令,标志状态正确的是__________为1。 CF
指令指针EIP或者还包括代码段寄存器CS值的改变将引起程序流程的改变。 对
测试ECX是否等于0,可以使用“cmp ecx,0”指令,也可以使用“test ecx,ecx”指令。 对
主程序将数据本身传递给子程序,这是_______。 传数值的入口参数
MASM包含源程序文件使用的伪指令是________。 include
用来指示当前堆栈栈顶的寄存器是__________。 ESP
指令“mov [ebx],al”的目的操作数采用__________寻址方式。 寄存器间接
下列指令中,执行后对标志不发生影响的是______。 mov ax,[bx]
堆栈的操作原则是_____________。 后进先出
进行有符号整数的加减运算,判断是否超出运算范围可由进位标志CF判断。 错
如果EBX保存一个无符号整数,移位指令“shl ebx,4”可以实现: EBX数值乘以16
有符号数前面进行符号扩展,位数加长一位、数值增加一倍。 错
在一段顺序结构的程序中,通常不应该包含条件转移指令。 对
在一段顺序结构的程序中,不应该出现的指令是______。 jz
当逻辑运算指令执行后,低8位结果中“1”的个数是零或偶数发生转移的指令是__________。 JP
汇编语言编写双分支结构的程序通常要使用Jcc指令进行分支,顺序执行的分支体最后需要JMP指令,该JMP指令无论如何分支都一定会被执行。 错
判断循环是否结束的循环控制部分只能安排在循环体之后。 错
进行子程序设计时,MASM要求使用______伪指令对。 proc / endp
指令“mov esi,[ebp 4]”的源操作数来自_____________。 堆栈段
返回指令RET执行时,从当前堆栈顶部弹出返回地址。 对
带有出口参数的寄存器,子程序不必在进入时进行保护,所以在返回主程序前也不必恢复。 对
IA-32处理器是指Intel公司的32位80x86结构处理器。 对
IA-32处理器是包括Intel 80386、80486和Pentium等32结构的Intel 80x86处理器。 对
一个十六进制位对应_______个二进制位。IA-32处理器具有32个地址信号,所以用十六进制表达一个地址应该有__________位。 4,8
关于常量,不符合MASM要求的说法是__________。 符号常量必须用equ定义
一个32位数据“22446688H”存放于从400410H开始的4个存储单元中,其中400411H存储单元存放的数据是__________。 66H
假设V1和V2是用DWORD定义的变量,下列指令中正确的是______。 mov V1,20h
执行“mov ebx,var”指令,EBX得到变量var的______。 变量值
两个无符号整数比较,在大于情况下发生跳转,判断条件的转移指令是______。 JA
CS不变,只改变EIP值,不能改变程序的执行顺序。 错
进入子程序后,将EAX、EBX、ECX和EDX按顺序压入堆栈,则子程序返回前弹出这些寄存器的顺序还是EAX、EBX、ECX和EDX。 错
模块连接中的“模块”是指汇编(编译)后形成的目标模块OBJ文件。 对
在伪指令语句“number byte 1234h”中的number 项称为_____________。 变量(名)
判断两个数不相等则跳转,最对应的条件转移指令是______。 JNE
在双分支程序结构中,顺序执行的分支体最后需要JMP指令,目的是使第一个分支体执行结束之后,跳过第二个分支体,避免误入第二个分支体中。 对
IA-32处理器使用CALL调用子程序。 对
接着CALL指令的32位存储器地址是00450806H,则CALL指令执行时压入堆栈的数据从存储器低地址到高地址,按字节为单位依次是_____________。 06H,08H,45H,00H
汇编语言中的“end  begin”中的begin指的是______。 程序开始执行的位置
对于十进制数96,如果采用8位8421BCD码表达,应该是_____________。 10010110B
指令“INC BYTE PTR [ESI]”的操作数来自______。 存储器
指令“TEST EDX, [EBX]”的目的操作数和源操作数分别采用__________寻址方式。 寄存器和寄存器间接
IA-32处理器指令“POP EDI”执行后,寄存器ESP被加4。 对
IA-32处理器的跳转指令用JMP助记符表示,它属于处理器的________类指令。 程序控制
两个有符号整数比较,在大于情况下发生跳转,判断条件的转移指令是______。 JG
MASM汇编语言用于定义子程序的伪指令是______。 proc 和endp
指令“RET i16”返回子程序的运行结果i16。 错
执行“ al,80h”指令后,可以肯定的执行结果是AL寄存器的______。 低7位均为0
IA-32处理器指令“PUSH EDI”执行后,寄存器ESP被加4。 错
已知again是一个标号,则指令”jmp again”中,again不包含______。 byte或者dword类型
指令“jge nonneg”中的jge可以用那一条指令替换? jnl
使用宏进行源程序的编写,不仅简化了源程序的编写,同时也将其生成的目标代码变的更小。 错
汇编程序使用的保留字,例如寄存器名称等,是不能用作用户定义的标识符的。 对
在MASM汇编语言中,如下各个进制常数,______是错误的。 A0H
加法指令常用ADD助记符表示,它属于处理器的________类指令。 算术运算
IA-32处理器定义双字(DWORD)表示__________位。 32
语句“dword 1, 2, 3”汇编后占用的存储空间是_____________个字节。 12
指令“MOV EAX,0”使EAX结果为0,所以标志ZF=1。 错
子程序需要保护寄存器,包括保护传递入口参数和出口参数的通用寄存器。 错

你可能感兴趣的:(汇编语言程序设计 中国大学Mooc郑州大学 网课 测试题目和答案)