中国大学mooc汇编语言程序设计最新考试答案-凯发k8天生赢家
随行课堂问答 2727
第1周 汇编语言基础
1-1 硬件组成随堂测验
1、从应用角度看,汇编语言程序员可以将计算机抽象为
a、寄存器、存储器地址、输入输出地址
b、寄存器、存储器地址、处理器
c、寄存器、输入输出地址、处理器
d、存储器地址、输入输出地址、处理器
2、如下哪个符号不是ia-32处理器的通用寄存器名
a、eax
b、edx
c、esi
d、edp
3、ia-32处理器中被称之为累加器通用寄存器是eax。
4、ia-32处理器中esp是堆栈指针寄存器。
5、ia-32处理器支持8个32位通用寄存器。
1-1 硬件组成随堂测验
1、一个字节(byte)是指二进制多少位?
a、1
b、4
c、8
d、16
2、ia-32处理器具有32位地址,能直接访问的主存储器容量是
a、1mb
b、16mb
c、1gb
d、4gb
3、物理地址也称逻辑地址,也是虚拟地址。
4、应用程序一般主要涉及代码段、数据段和堆栈段。
5、ia-32处理器的逻辑地址包括偏移地址。
1-1 硬件组成随堂测验
1、ia-32处理器保存将要执行指令在主存中的存储器地址的寄存器是:
a、eflags
b、eip
c、esp
d、cs
2、ia-32处理器保存标志的寄存器是:
a、eflags
b、eip
c、esp
d、cs
3、ia-32处理器的cs是代码段寄存器。
4、ia-32处理器的ds是数据段寄存器。
5、ia-32处理器的esp与ss配合指向堆栈段当前栈顶。
1-2 程序格式随堂测验
1、助记符mov表达的指令功能是:
a、传送
b、加法
c、减法
d、空操作
2、指令“mov eax, 100”的源操作数是:
a、mov
b、eax
c、100
d、空
3、指令一般由操作码和操作数组成。
4、在masm的语句语法中,指令的目的操作数一般在左边,源操作数在右边。
5、ia-32处理器的指令所采用的二进制编码长度均是32位(bit)。
1-2 程序格式随堂测验
1、汇编语言源程序中,每个语句由四项组成,不影响语句功能的是:
a、名字项
b、操作码
c、操作数
d、注释
2、语句“msg byte 13,10,0”中,关键性的助记符是:
a、msg
b、byte
c、13
d、0
3、masm的语句分成执行性语句和说明性语句。
4、masm汇编语言的分隔操作数使用英文逗号,不能用中文逗号。
5、masm汇编语言的注释用分号开始,无所谓英文分号还是中文分号,都可以。
1-2 程序格式随堂测验
1、可执行代码(语句)应该在______定义的段中。
a、.stack
b、.data
c、.code
d、.data
2、语句“.data”说明是什么性质的逻辑段?
a、代码段
b、数据段
c、堆栈段
d、附加段
3、“end”伪指令仅说明汇编到此结束,并不具备返回操作系统的功能。
4、汇编结束也就是程序执行终止。
5、为ia-32处理器编程只应该使用8086的16位指令。
1-2 程序格式随堂测验
1、定义要显示的字符串可以使用的伪指令是
a、call
b、mov
c、byte
d、msg
2、本课程使用“exit 0”表达
a、程序执行终止
b、源程序汇编结束
c、代码段结束
d、数据段开始
3、要显示字符串“i love assembly”,masm可以直接使用c语言的printf函数。
4、要显示字符串,可以使用本课程提供的dispmsg子程序。
5、c语言使用函数名(含参数)就是调用函数,ia-32处理器需要使用“call”调用指令实现调用。
1-3 开发过程随堂测验
1、masm开发软件中的“ml.exe”是指:
a、汇编语言源程序
b、汇编程序
c、连接程序
d、调试程序
2、汇编程序的作用是:
a、编辑源程序文件
b、调试可执行文件
c、显示可用的连接程序
d、将汇编语言程序转换为机器代码
3、人们常会将汇编语言程序简称为汇编程序,但严格来说,两者是不同的。
4、程序设计语言的开发环境通常要包括连接程序(例如,常用的文件名是link)。
5、本课程主要采用masm 6.x版本。
1-3 开发过程随堂测验
1、32位windows xp/7/8等操作系统中,启动控制台窗口的文件是:
a、cmd.exe
b、cmd.com
c、command.exe
d、command.com
2、32位windows xp/7/8等操作系统中,启动16位模拟dos窗口的文件是:
a、cmd.exe
b、cmd.com
c、command.exe
d、command.com
3、32位windows控制台与16位模拟dos窗口的界面和基本功能相同,所以本质上就是同一个程序。
4、32位windows xp/7/8等操作系统中,“命令提示符”一般是指windows控制台。
5、32位中文windows xp/7/8等操作系统中,windows控制台窗口也支持中文的输入输出。
1-3 开发过程随堂测验
1、编写汇编语言源程序文件,应使用______。
a、汇编程序
b、连接程序
c、编辑程序
d、调试程序
2、dos/windows平台中,汇编语言源程序文件的扩展名为:
a、lib
b、obj
c、bat
d、asm
3、本课程提供一个“make32.bat”批处理文件用于快速开发汇编语言程序。
4、如果源程序文件没有错误,列表文件就为空。
5、开发过程中生成的目标模块文件(.obj)与列表文件(.lst)一样都是文本性质的文件,可以使用文字编辑软件打开。
第1周测试
1、处理器也称为__________。
a、控制器
b、cpu
c、运算器
d、系统总线
2、寄存器edx的低8位部分可以用__________表达。
a、ex
b、dx
c、dh
d、dl
3、已知edx=12345678h,则dh=__________。
a、12h
b、34h
c、56h
d、78h
4、一个字节的二进制位数是__________位。
a、2
b、4
c、8
d、16
5、计算机中每个主存储单元具有一个地址,其中存放一个__________量。
a、比特(1位)
b、字节(8位)
c、字(16位)
d、双字(32位)
6、用来指示当前堆栈栈顶的寄存器是__________。
a、eip
b、esp
c、ebp
d、ss
7、应用程序具有3个基本段,可执行指令应该保存于__________。
a、代码段
b、数据段
c、堆栈段
d、附加段
8、汇编语言中的“end begin”中的begin指的是______。
a、程序开始执行的位置
b、程序终止执行的位置
c、程序开始汇编的位置
d、程序终止汇编的位置
9、下列标号不合法的是_____________。
a、wang
b、mov
c、f8
d、ab3
10、如下符号_____________不是masm支持的关键字。
a、done
b、include
c、.model
d、.data
11、汇编语言源程序中,每个语句由四项组成,不影响语句功能的是_____________。
a、名字项
b、操作码
c、操作数
d、注释
12、在伪指令语句“number byte 1234h”中的number 项称为_____________。
a、标号
b、变量(名)
c、助记符
d、参数
13、下面_____________语句有语法错误。
a、mov eax, ebx
b、byte 20
c、again: byte 20
d、mov al, bl ;
14、汇编语言的优点不包括_____。
a、直接有效地控制硬件
b、生成的代码序列短小
c、运行速度快
d、编程容易
15、在dos/windows操作系统中,汇编语言源程序文件通常采用______作为扩展名。
a、asm
b、map
c、lst
d、obj
16、将obj文件转换为exe可执行文件的是______。
a、汇编程序
b、连接程序
c、编辑程序
d、调试程序
17、将一个或多个目标代码文件合成为可执行文件的过程,称为_________。
a、编辑
b、汇编
c、连接
d、调试
18、编写汇编语言源程序文件,应使用______。
a、汇编程序
b、连接程序
c、编辑程序
d、调试程序
19、ia-32处理器是指intel公司的32位80x86结构处理器。
20、ia-32处理器是包括intel 80386、80486和pentium等32结构的intel 80x86处理器。
21、尽管用汇编语言生成的执行代码较庞大,但其能够直接有效地控制硬件。
22、masm规定用后缀字母h或h表达十六进制数据。
23、对32位字长的ia-32处理器来说,其主存不能采用8位(字节)编址。
24、ia-32处理器采用以字节为基本存储单位为主存空间编址。
25、主存中的一个存储单元的物理地址不是唯一的。
26、指向程序堆栈区的段寄存器是ss。
27、ia-32处理器读取指令,一定是在代码段中。
28、汇编程序使用的保留字,例如寄存器名称等,是不能用作用户定义的标识符的。
29、ia-32处理器按逻辑段组织程序,数据变量应该且必须在数据段中。
30、指令指针eip寄存器属于通用寄存器。
31、源程序中只能用标号start表示程序的起始执行点。
32、使用简化段定义源程序格式,必须具有.model语句。
33、利用“end”伪指令就可以结束程序执行,返回操作系统。
34、伪指令“end”仅说明汇编到此结束,并不具备返回操作系统的功能。
35、采用汇编语言书写的一个asm源程序文件,需要使用汇编语言程序转换为obj目标代码文件。
36、汇编程序(例如masm)一般都提供大量的函数(过程)供程序员调用,所以汇编语言程序员通常不需要直接利用操作系统的资源。
37、masm汇编语言的注释用分号开始,但不能用中文分号。
38、masm汇编语言用逗号分隔两个操作数或者参数,英文逗号或者中文逗号都可以。
第2周 数据表示
2-1 常量表达随堂测验
1、masm汇编语言中,表示十六进制数的后缀字母是
a、x
b、b
c、h
d、d
2、masm汇编语言中,表示二进制数的后缀字母是
a、x
b、b
c、h
d、d
3、masm中,字符用单引号括起,字符串用双引号括起。
4、masm中,使用“=”或者“equ”都可以定义符号常量。
5、按照masm语法,“ah”是一个8位寄存器,“0ah”表达十六进制数。
2-1 常量表达随堂测验
1、指令byte 100 定义的数据是:
a、64
b、100b
c、64h
d、100h
2、下面指令可以定义数据-1的指令是:
a、byte ffh
b、byte ff
c、byte 0ffh
d、byte '-1'
3、汇编语言中,表达真值“100”,可以使用二进制“01100100b”表达。
4、小写字母“d”作为字符,它在主存中与十六进制数“64h”是一样的。
5、汇编语言中,表达真值“13”,可以使用十六进制数“0dh”表达。
2-2 变量定义随堂测验
1、masm定义变量的伪指令不包括:
a、byte
b、word
c、dword
d、equ
2、masm中定义的变量保存在通用寄存器中。
3、变量定义的参数表中出现“?”符号,说明该存储空间没有赋初值。
4、变量定义中的操作符“dup”用在初值表中,表示多个重复的参数。
5、masm定义变量必须有变量名,否则不能定义。
2-2 变量定义随堂测验
1、分配一个字节空间的伪指令是:
a、byte
b、word
c、dword
d、equ
2、masm使用“byte”定义的变量,与c语言的变量类型对应的是:
a、char
b、short
c、long
d、int
3、语句“byte 5 dup(1,2)”分配主存的存储单元个数是:
a、5
b、10
c、15
d、20
4、定义字符串也可以使用字节变量定义伪指令“byte”。
5、数值“356”可以作为byte伪指令定义的变量初值。
2-2 变量定义随堂测验
1、语句“word 5 dup(1,2)”分配主存的存储单元个数是:
a、5
b、10
c、15
d、20
2、语句“word -1”在主存分配的数据用十六进制表达是:
a、-1h
b、1h
c、ffffh
d、00ffh
3、masm伪指令“word”定义的字量数据是指16位数据。
4、语句“word ?”表示预留一个字节存储空间。
5、数值“356”可以作为word伪指令定义的变量初值。
2-2 变量定义随堂测验
1、关于masm语句“dvar dword ?”的说法正确的是:
a、dvar变量分配的初值是1个问号(?)
b、dvar变量分配的初值是4个问号(?)
c、dvar变量无初值,占有1个主存存储单元
d、dvar变量无初值,占有4个主存存储单元
2、以32位数据分配存储空间的伪指令是:
a、byte
b、word
c、dword
d、equ
3、伪指令“dword”定义的32位变量要占用4个字节存储空间。
4、伪指令“dword”只能定义无符号整数为变量初值。
5、masm定义无初值变量使用“?”符号,但通常汇编程序填入0。
2-3 变量应用随堂测验
1、在ia-32处理器中,语句“dvar6 dword 38323139h”为变量dvar6所在的4个存储单元最高地址中分配的数值是:
a、38h
b、32h
c、31h
d、39h
2、intel 80x86系列处理器采用小端(little endian)方式存储多字节数据。
3、所谓小端方式是指数据的低字节部分保存于存储器的低地址单元、高字节数据部分保存于存储器的高地址单元。
4、主存储器采用字节编址,意味着每个存储单元具有一个地址、保存一个字节的数据。
5、存储多字节数据采用小端方式一定比大端方式好,因为没有处理器采用大端方式。
2-3 变量应用随堂测验
1、返回变量名所在段的偏移地址的操作符是:
a、offset
b、seg
c、$
d、[]
2、指令“org $ 10h”的作用是:
a、下一条机器码从地址10开始
b、下一条机器码从地址10h开始
c、下一条机器码从当前地址加上10开始
d、下一条机器码和当前地址之间有10h个内存空间。
3、变量的地址属性是指变量所在存储单元的逻辑地址,包括段基地址和偏移地址。
4、bvar是一个字节变量,语句“mov al ,bvar”与“mov al ,[bvar]”功能相同。
5、指令“mov eax, var 2”与“mov eax, var[2]”功能相同。
2-3 变量应用随堂测验
1、将变量按照指定的类型使用的类型操作符是:
a、ptr
b、type
c、lengthof
d、sizeof
2、双字变量的类型值是:
a、0
b、1
c、2
d、4
3、定义变量后,变量名就具有了类型属性。
4、定义为双字类型的变量,不能按字节或字类型访问。
5、本课程提供的子程序disprd可以显示8个32位通用寄存器的内容。
第2周测试
1、一个十六进制位对应_______个二进制位。ia-32处理器具有32个地址信号,所以用十六进制表达一个地址应该有__________位。
a、2,4
b、4,8
c、4,4
d、8,4
2、十进制数165用二进制表达为______。
a、11001101
b、00100111
c、01001101
d、10100101
3、对于十进制数96,如果采用8位8421bcd码表达,应该是_____________。
a、01100000b
b、10010110b
c、00000110b
d、10010000b
4、二进制代码10000111是计算机内部一个8421 bcd编码,它表示的真值是________。
a、87
b、87h
c、135
d、135h
5、用8位二进制补码表达真值“-7”,其编码是_________。
a、10001001
b、11111000
c、11110111
d、11111001
6、真值“-8”用8位二进制补码表达是_________。
a、00001000
b、10001000
c、11110111
d、11111000
7、采用2的补码形式表示时,定点8位字长的字能表示的整数范围是______。
a、-127~128
b、-127~127
c、-128~128
d、-128~127
8、计算机中有一个“01100001”编码。如果把它认为是无符号整数,它是十进制数___________;如果认为它是bcd码,则表示真值_____________。
a、61,61
b、97,61
c、61,97
d、97,97
9、ascii表中的每个字符对应一个编码,按无符号数理解,每个字符编码有大小,如下字符从小到大顺序正常的是___________。
a、空格字符,数码,大写字母
b、小写字母,空格字符,大写字母
c、数码,小写字母,大写字母
d、大写字母,小写字母,空格字符
10、c语言用“\n”表示让光标回到下一行首位,在dos、windows中需要输出两个控制字符:一个是回车,其ascii码是_____________,它将光标移动到当前所在行的首位;另一个是换行,其ascii码是_____________,它将光标移到下一行。
a、10,0
b、13,0
c、13,10
d、10,13
11、针对ascii码,关于字符“9”和数值9的说法正确的是___________。
a、字符“9”和数值9是一样的。
b、数值9加上30就可以转换为字符“9”的编码
c、数值9减去30就可以转换为字符“9”的编码
d、数值9加上30h就可以转换为字符“9”的编码
12、在masm汇编语言中,如下各个进制常数,______是错误的。
a、64
b、64h
c、a0h
d、0100b
13、byte伪指令定义的是______量的变量。
a、字节
b、字
c、双字
d、四字
14、ia-32处理器定义双字(dword)表示__________位。
a、8
b、16
c、32
d、64
15、dword伪指令定义的是______量的变量。
a、字节
b、字
c、双字
d、四字
16、能够为变量bvar定义10个数值为0的语句是___________。
a、bvar byte '0'
b、bvar byte 10 dup(0)
c、bvar byte 0 dup(10)
d、bvar byte 10 dup('0')
17、关于masm语句“word 1”的说法正确的是___________。
a、与语句“byte 1”相同
b、与语句“byte '1' ”相同
c、与语句“byte 0,1”相同
d、与语句“byte 1,0”相同
18、关于常量,不符合masm要求的说法是__________。
a、符号常量必须用equ定义
b、符号常量可以用“=”定义
c、常量不在主存分配存储空间
d、数值表达式也是一种常量
19、数据段有语句“dword 25 dup(?)”,它将占据主存__________字节存储空间。
a、25
b、50
c、75
d、100
20、语句“dword 1, 2, 3”汇编后占用的存储空间是_____________个字节。
a、3
b、6
c、9
d、12
21、在ia-32处理器的主存中,假设物理地址10ff0h存放数据10h,物理地址10ff1h存放数据20h,物理地址10ff2h存放数据30h,如从物理地址10ff1h中取出一个字的内容是_____________。
a、1020h
b、3020h
c、2030h
d、2010h
22、有一个32位整数编码,在ia-32处理器的主存中占用4个字节空间,起始于405000h地址,则最高字节存放的地址是________。
a、405000h
b、405001h
c、405002h
d、405003h
23、一个32位数据“22446688h”存放于从400410h开始的4个存储单元中,其中400411h存储单元存放的数据是__________。
a、22h
b、44h
c、66h
d、88h
24、masm汇编语言中的变量有多种类型属性,但错误的类型是______。
a、字节型byte
b、字符型char
c、字型word
d、双字型dword
25、对于采用dword伪指令定义的变量具有的类型属性是______。
a、byte
b、word
c、dword
d、qword
26、对于采用byte伪指令定义的变量具有的类型属性是______。
a、byte
b、word
c、dword
d、qword
27、已知dvar是一个双字变量,在“mov eax, offset dvar”指令中,eax获得dvar变量的_____。
a、值
b、逻辑地址
c、段基地址
d、偏移地址
28、变量var定义是“var byte 26h, 4ah”,欲以字属性存取该变量值,应采用________var。
a、offset
b、byte ptr
c、word ptr
d、dword ptr
29、要设定从偏移地址100h开始安排变量或代码,masm可使用______语句。
a、org 100h
b、start=100h
c、start byte 100h
d、start equ 100h
30、人们经常采用十六进制形式表达数据,这是因为计算机内部寄存器采用这种进制。
31、已知01100100是采用bcd编码的二进制串,它表达整数的真值64。
32、已知01100101是采用bcd编码的二进制串,它表达整数的真值101。
33、0307h是一个非压缩bcd码,它表达的真值是37 。
34、对于常数41h,在汇编语言中表达成字符’a’也是正确的,因为’a’的ascii码就是41h。
35、在文字编辑软件中,按下键盘上的空格键往往显示空白,所以ascii的空格编码不是字符编码。
36、伪指令“dvar dword a0b0h”没有语法错。
37、语句“mov al,ffh”没有语法错。
38、伪指令“dvar dword 5 dup(0)”定义的变量dvar占用5个字节存储空间。
39、伪指令“dvar dword 5 dup(0)”定义的变量wvar占用20个字节存储空间。
40、ia-32处理器采用小端方式存储多字节数据。
41、指令“mov eax, var 10”与“mov eax, var[2*5]”功能相同。
42、“type edx”的结果是一个常量,等于2。
43、伪指令org只能用于数据段,指明变量开始的偏移地址。
第3周 数据寻址
3-1 立即数寻址随堂测验
1、寻址方式的含义是指通过地址访问指令或数据的方法。
2、数据寻址的含义是指通过地址访问指令操作数(数据)。
3、指令寻址是指确定要执行的下一条指令的地址。
4、指令操作数来自处理器的寄存器,被称为寄存器寻址。但把指令操作数保存于处理器的寄存器,就不能被称为寄存器寻址。
5、变量指向存储单元,所以访问变量就是存储器寻址。
3-1 立即数寻址随堂测验
1、语句“mov al,12h”中采用立即数寻址的部分是:
a、mov
b、al
c、,
d、12h
2、语句“mov eax,offset dvar”中(dvar是一个变量)采用立即数寻址的部分是:
a、eax
b、offset
c、offset dvar
d、dvar
3、立即数是指从指令的机器代码中直接取得的操作数。
4、立即数寻址方式只用于目的操作数。
5、语句“mov edx,type dvar”中(dvar是一个双字变量)源操作数采用立即数寻址。
3-2 寄存器寻址随堂测验
1、源操作数采用寄存器寻址的指令(var是一个变量)是:
a、mov var, eax
b、mov ebx, var
c、mov ecx,1234
d、mov edx,offset var
2、语句“mov eax, ebx”的两个操作数都是采用寄存器寻址方式。
3、语句“mov dx, ds”的源操作数不是寄存器寻址方式。
4、语句“mov bvar, cl”目的操作数的寻址方式是寄存器寻址方式。
5、masm中,语句“mov si,edi”有语法错误。
3-3 存储器寻址随堂测验
1、使用ebp或esp作为基址寄存器,操作数默认是在:
a、代码段
b、数据段
c、堆栈段
d、附加段
2、存储器寻址的操作数当然在主存储器中了。
3、ia-32处理器的存储器寻址中,8个32位的通用寄存器都可以作为基址寄存器使用。
4、堆栈操作默认是由ss寄存器指示的段中。
5、存储器操作数由逻辑地址指示,一定要表达出段基地址。
3-3 存储器寻址随堂测验
1、源操作数采用存储器的直接寻址的指令(var是一个变量)是:
a、mov var, eax
b、mov ebx, var 2
c、mov ecx,1234
d、mov edx,offset var
2、直接寻址把存储器操作数的有效地址直接编码进指令的机器代码中。
3、masm规定直接寻址只能用具体的地址值直接表达,不能使用变量名等形式表达。
4、在masm语法中,语句“mov eax,dvar”和“mov eax,[dvar]”是同一条指令,其中dvar是一个双字类型的变量(名)。
5、dvar1和dvar2分别为双字变量,指令“mov dvar1, dvar2”是否正确?
3-3 存储器寻址随堂测验
1、指令“mov [edi], al”的功能是将al寄存器的值传送到
a、数据段中、edi间接寻址的主存中
b、代码段中、edi间接寻址的主存中
c、堆栈段中、edi间接寻址的主存中
d、到寄存器edi中
2、存储器的寄存器间接寻址中,寄存器相当于一个地址指针的作用。
3、masm中,“ebx”和“[ebx]”都表示ebx寄存器的内容,含义是一样的。
4、指令“mov ebx, [ebx]”的源操作数采用寄存器间接寻址。
5、语句“mov [ebx],250”没有语法错误。
3-3 存储器寻址随堂测验
1、指令“mov eax, count[esi]”中源操作数的寻址方式是:
a、寄存器间接寻址
b、寄存器相对寻址
c、寄存器寻址
d、直接寻址
2、在masm支持的语法中,与[ebx 8]含义不相同的表达方式是(其中eight是一个常量,是数值8):
a、8[ebx]
b、eight[ebx]
c、[8][ebx]
d、[ebx*8]
3、源操作数不是寄存器相对寻址的指令是:
a、mov eax, [ebx]
b、mov ebx, [ecx 4]
c、mov ecx, [edx-8]
d、mov edx, 8[esi]
4、寄存器相对寻址有一个位移量和一个寄存器内容相加形成存储器操作数的有效地址。
5、语句“mov [edi], [esi 4]”是非法指令。
第3周测试
1、指令“mov eax,3456h”的源操作数采用__________寻址方式。
a、立即数
b、寄存器
c、寄存器相对
d、基址变址
2、指令“mov eax,3456h”的目的操作数采用__________寻址方式。
a、立即数
b、寄存器
c、寄存器相对
d、基址变址
3、指令“mov [ebx],al”的目的操作数采用__________寻址方式。
a、寄存器间接
b、寄存器
c、寄存器相对
d、基址变址
4、指令“mov [ebx 8],eax”的目的操作数采用__________寻址方式。
a、存储器间接
b、寄存器
c、寄存器相对
d、立即数
5、指令“mov eax,2010”的目的操作数采用__________寻址方式。
a、立即数
b、寄存器
c、寄存器相对
d、寄存器间接
6、假设var为变量,指令“mov ebx, offset var”的源操作数寻址方式是______。
a、直接寻址
b、间接录址
c、立即寻址
d、存储器寻址
7、有效地址是指______。
a、存储器操作数的物理地址
b、存储器操作数的段地址
c、存储器操作数的偏移地址
d、立即数的偏移地址
8、存储器寻址方式中寻址的操作数在__________中。
a、外设
b、辅存
c、寄存器
d、主存
9、ia-32处理器的存储器寻址方式中,带有比例的是__________。
a、直接寻址
b、寄存器间接寻址
c、寄存器寻址
d、变址寻址
10、指令“mov eax,cs:[edi 100h]”从__________段取出数据送eax。
a、cs
b、ss
c、ds
d、es
11、指令“mov eax,[ebp edi]”从__________段取出数据送eax。
a、cs
b、ss
c、ds
d、es
12、在指令代码中,直接给出操作数本身的寻址方式,称为_________。
a、隐含寻址
b、立即数寻址
c、寄存器寻址
d、直接寻址
13、对某个通用寄存器内操作数进行访问的寻址方式被称为________。
a、存储器直接寻址
b、存储器间接寻址
c、寄存器寻址
d、寄存器间接寻址
14、关于指令“mov eax,[ebx esi*6]”的说法正确的是________。
a、源操作数寻址方式是带比例的基址变址寻址方式
b、目的操作数寻址方式是带比例的基址变址寻址方式
c、源操作数寻址方式是寄存器间接寻址
d、源操作数表达的寻址方式是错误的
15、源操作数采用存储器的直接寻址的指令(var是一个变量)是________。
a、mov var, eax
b、mov ebx, var 2
c、mov ecx,1234
d、mov edx,offset var
16、数据寻址的含义是指通过地址访问指令操作数(数据)。
17、立即数寻址只会出现在源操作数中。
18、存储器寻址方式的操作数当然在主存了。
19、寄存器间接寻址方式,操作数是在某一寄存器中。
20、ia-32处理器的有效地址是指存储器操作数的物理地址。
21、ia-32处理器的有效地址是指存储器操作数的偏移地址。
22、语句“mov edx, eax”的两个操作数都是采用寄存器寻址方式。
23、指令“mov eax,[ebx]”中有效地址ea是ebx的内容。
24、指令“mov ebx, [ebx]”是一条正确的指令。
25、语句“mov [ebx],250”没有语法错误。
26、masm中,“[ebx 8]”和“[ebx*8]”含义相同。
27、可以乘以比例的32位通用寄存器不包括esp堆栈指针寄存器。
第4周 通用数据处理指令
4-1 数据传送类指令随堂测验
1、实现32位数据传送的指令是:
a、mov al, [ebx]
b、mov ah, [ecx]
c、mov eax, [edx]
d、mov ax, [edi]
2、下面指令哪一条可以完成将edi寄存器的值保存至存储单元的功能?
a、mov edi, dvar
b、mov eax, edi
c、mov edi, 2000h
d、mov [eax], edi
3、32位的ia-32处理器只支持32位数据操作,不支持8位或16位数据操作。
4、指令“mov dx,0ffh”实现16位数据传送。
5、指令“mov edx,0ffh[ebx]”中,“0ffh”是立即数寻址方式的立即数。
4-1 数据传送类指令随堂测验
1、已知var是一个变量,与指令“lea ebx,var”相同功能的语句是:
a、mov ebx,var
b、mov ebx,offset var
c、lea ebx,offset var
d、mov ebx,seg var
2、已知dvar是一个变量,下面指令错误的是:
a、mov edx, offset [esi edi*4 100h]
b、lea edx,[esi edi*4 100h]
c、lea edx, dvar
d、mov edx, offset dvar
3、指令“lea eax,[ebx]”是一条语法正确的指令。
4、指令“lea eax,[ebx 10]”是一条语法正确的指令。
5、指令“mov eax, offset [ebx 10]”是一条语法正确的指令。
4-1 数据传送类指令随堂测验
1、如下错误的指令是:
a、push ebx
b、push [ebx]
c、pop ecx
d、pop dword ptr [ecx]
2、执行指令“push eax”后、接着执行指令“pop edx”,其功能与下面哪条指令相同。
a、mov eax, edx
b、mov edx, eax
c、xchg eax, edx
d、xchg edx, eax
3、ia-32处理器指令“push eax”执行后,寄存器eax内容被传送到当前栈顶。
4、堆栈操作指令也属于传送类指令,而指令“pop ecx”中,寄存器ecx是源操作数。
5、指令“push edi”执行后,寄存器esp被加4。
4-2 算术运算类指令随堂测验
1、ia-32处理器的减法操作的借位状态使用什么标志反映?
a、溢出标志of
b、进位标志cf
c、零标志zf
d、符号标志sf
2、进行有符号整数的加减运算,判断是否超出运算范围可由溢出标志of判断。
3、进位标志cf属于ia-32处理器的状态标志,而溢出标志of不属于状态标志。
4、下面说法是否正确:进行8位加法“99h 31h”,会使cf=1。
5、ia-32处理器完成一条加减运算指令,如果是针对无符号数的加减运算就影响cf标志,而如果是有符号数的加减运算就影响of标志。总之,加减运算只会影响cf或of之一,不会同时进行设置。
4-2 算术运算类指令随堂测验
1、哪个不是ia-32处理器的状态标志
a、of
b、cf
c、zf
d、tf
2、两个整数相减等于0,则标志正确的是:
a、zf=0,pf=0,sf=0
b、zf=1,pf=1,sf=1
c、zf=0,pf=1,sf=0
d、zf=1,pf=1,sf=0
3、ia-32处理器对符号标志sf的定义是:运算结果最高位为1,则sf=1;否则sf=0。
4、ia-32处理器设计零标志zf反映运算结果是否为0,结果为0,则zf标志为1。
5、ia-32处理器的奇偶标志pf关注的是32位结果中“1”的个数是偶数还是奇数。
4-2 算术运算类指令随堂测验
1、若eax=12345678h,则“add al,27h”执行后的结果为:
a、eax=39345678h
b、eax=12345705h
c、eax=12345705
d、eax=1234569fh
2、若al=100,则“add al,200”执行后的结果为:
a、al=300
b、al=44
c、al=100
d、al=200
3、加法指令add的运算结果影响状态标志的取值。
4、ia-32处理器的add加法指令只进行32位数据的加法操作。
5、ia-32处理器的add加法指令进行16位数据的加法,如果有进位则自动进入高1位数据结果中。
4-2 算术运算类指令随堂测验
1、若al=200,则“sub al,100”执行后的结果为:
a、al=300
b、al=44
c、al=100
d、al=200
2、若eax=12345678h,则“sub al,27h”执行后的结果为:
a、eax=12345678
b、eax=12345678h
c、eax=12345651
d、eax=12345651h
3、sub是算术运算类指令。
4、ia-32处理器的sub减法指令只进行整数的减法操作。
5、减法指令sub的运算结果影响除进位cf标志之外的其他状态标志。
4-2 算术运算类指令随堂测验
1、假设edx=6,执行如下哪条指令后edx=5?
a、inc edx
b、dec edx
c、neg edx
d、not edx
2、对eax中的整数进行求补运算的指令是:
a、sub 0, eax
b、dec eax
c、inc eax
d、neg eax
3、指令“dec [ebx]”没有语法错误。
4、加1指令inc和减1指令dec的运算结果影响除进位cf标志之外的其他状态标志。
5、“neg eax”指令的功能是用0减去eax内容,差值结果保存在eax。
4-3 位操作类指令随堂测验
1、能将edx中的0变成1、1变成0的指令是:
a、not edx
b、neg edx
c、dec edx
d、inc edx
2、使得ecx=0,同时设置cf=of=0的指令是:
a、mov ecx,0
b、sub ecx,0
c、or ecx,0
d、xor ecx,ecx
3、“and eax, 1”指令可以将eax最低位为置1。
4、“or eax, 1”指令可以将eax最低位为置1。
5、“xor eax, 1”指令可以将eax最低位求反。
4-3 位操作类指令随堂测验
1、指令“shr eax, 1”执行后,eax的最高位一定是:
a、0
b、1
c、与最低位相同
d、与次高位相同
2、指令“sar eax, 1”执行后,eax的最高位一定是:
a、0
b、1
c、与最低位相同
d、与次高位相同
3、逻辑左移和算术左移的功能相同。
4、逻辑右移和算术右移的功能相同。
5、指令“shl eax, 4”是将eax内容左移4位。
4-3 位操作类指令随堂测验
1、masm使用rcl助记符代表的指令是:
a、不带进位循环左移指令
b、带进位循环左移指令
c、逻辑左移指令
d、算术左移指令
2、指令“ror eax, 1”执行后,eax的最高位一定是:
a、0
b、1
c、与最低位相同
d、与进位cf标志相同
3、ia-32处理器指令rol是指不带进位的循环左移指令。
4、不带cf标志的循环移位指令rol和ror执行后不会影响cf标志。
5、带进位循环右移指令rcr执行后,cf标志被设置为0。
第4周测试
1、指令“mov ax,3456h”是一个__________量传送。
a、比特(1位)
b、字节(8位)
c、字(16位)
d、双字(32位)
2、执行“mov ebx,var”指令,ebx得到变量var的______。
a、逻辑地址
b、段基地址
c、偏移地址
d、变量值
3、假设v1和v2是用dword定义的变量,下列指令中正确的是______。
a、mov v1,20h
b、mov v1,v2
c、mov al,v2
d、mov v1,ax
4、假设array是一个32位变量,与“lea ebx, array”指令相同功能的指令是_____________。
a、mov ebx, array
b、mov ebx, seg array
c、mov ebx, offset array
d、add ebx, array
5、已知names是一个如下定义的变量: manes byte ‘tom bush’ 符合汇编语言语法的正确语句是______。
a、mov edi,names
b、mov edi,names[ebx]
c、mov edi,offset names[ebx]
d、lea edi,names[ebx]
6、程序运行通常需要在主存建立堆栈区域,它的存取方式是__________。
a、顺序读写
b、随机读写
c、先进后出
d、先进先出
7、堆栈的操作原则是_____________。
a、先进先出
b、后进先出
c、后进后出
d、循环
8、假设esp寄存器为3210h,则“push eax”指令执行后,esp为_____________。
a、320ch
b、320eh
c、3212h
d、3214h
9、下列指令中,执行后对标志不发生影响的是______。
a、mov ax,[bx]
b、add ax,0ffh
c、cmp ax,ax
d、test ax,ax
10、执行指令“push eax”后、接着执行指令“pop edx”,其功能与__________相同。
a、mov eax, edx
b、mov edx, eax
c、xchg eax, edx
d、xchg edx, eax
11、加法指令常用add助记符表示,它属于处理器的________类指令。
a、逻辑运算
b、算术运算
c、程序控制
d、数据传送
12、add求和指令的结果最高位为1,则sf=__________。
a、0
b、1
c、任意
d、不影响
13、当加减运行结果为0时,zf=__________。
a、0
b、1
c、任意
d、不影响
14、某次求和结果最高位为1,则sf=__________。
a、0
b、1
c、任意
d、不影响
15、减法指令产生差值为38h则标志正确的是__________。
a、zf=1
b、sf=1
c、pf=1
d、pf=0
16、设eax=1000h、ebx=2000h,则在执行了指令“sub eax, ebx”后,标志位cf和zf的值分别为_____________。
a、0,0
b、0,1
c、l,0
d、l,1
17、执行8位二进制加法“99h 31h”后,标志位正确的是:
a、zf=0,pf=0,sf=0
b、zf=1,pf=1,sf=1
c、zf=1,pf=0,sf=1
d、zf=0,pf=1,sf=1
18、指令“inc byte ptr [esi]”的操作数来自______。
a、寄存器
b、存储器
c、立即数
d、外设端口
19、真值-1,用8位二进制补码表示是11111111,如果用16位二进制补码表示是________。
a、1111111111111111
b、0000000011111111
c、1111111100000000
d、0000000000000000
20、执行“and al,80h”指令后,可以肯定的执行结果是al寄存器的______。
a、最高位为0
b、最高位为1
c、低7位均为0
d、低7位均为1
21、对数值83a7h作逻辑非运算后的结果是______。
a、83a8h
b、73a8h
c、7c59h
d、7c58h
22、指令__________实现对eax当中d15和d0位求反,其他位不变的功能。
a、and eax,0ffff7ffeh
b、or eax,8001h
c、xor eax,8001h
d、not eax
23、指令__________实现对eax当中d15和d0位设置为0,其他位不变的功能。
a、and eax,0ffff7ffeh
b、or eax,8001h
c、xor eax,8001h
d、not eax
24、指令__________实现对eax当中d15和d0位设置为1,其他位不变的功能。
a、and eax,0ffff7ffeh
b、or eax,8001h
c、xor eax,8001h
d、not eax
25、设eax=abdfh,则执行指令“and eax, 0lh”后,eax寄存器为____________。
a、abdfh
b、ffffh
c、0001h
d、0000h
26、指令“test edx, [ebx]”的目的操作数和源操作数分别采用__________寻址方式。
a、寄存器和立即数
b、寄存器和寄存器间接
c、直接和寄存器相对
d、直接和寄存器间接
27、能将al最低位移入cf标志位的指令是________。
a、shl al, 1
b、shr al, 1
c、sar al, 4
d、sal al, 1
28、能将cf标志位移入al最低位的指令是:
a、rcl al, 1
b、rcr al, 1
c、ror al, 1
d、rol al, 1
29、指令“mov eax,6735h”指令执行后,al=67h 。
30、指令“mov bx,eax”的错误原因是数据类型不匹配。
31、dvar是双字变量,指令“mov al, dvar”的语法正确。
32、堆栈的操作原则是“先进后出”,压入数据是push指令、弹出数据是pop指令。
33、空操作nop指令其实根本没有指令。
34、nop是空操作指令,所以处理器并不执行该指令。
35、ia-32处理器指令“push edi”执行后,寄存器esp被加4。
36、ia-32处理器指令“pop edi”执行后,寄存器esp被加4。
37、ia-32处理器系统中,堆栈的数据压入和弹出操作可以是字节、字或双字为单位。
38、指令“mov [esi],[edi]”是错误的,因为ia-32处理器不存在这种传送组合。
39、指令“lea eax,[ebx edi 50]”可以将ebx+edi+50的结果传送给eax。
40、指令“mov eax,0”使eax结果为0,所以标志zf=1。
41、进位和溢出标志都表达结果超出范围,所以加法运算有溢出,一定也进位了。
42、进行有符号整数的加减运算,判断是否超出运算范围可由进位标志cf判断。
43、add指令的某个加法运算结果使标志zf=1,则标志sf为0。
44、add指令的某个加法运算结果使标志zf=1,则标志pf为0。
45、虽然add指令和sub指令执行后会影响标志状态,但执行前的标志并不影响它们的执行结果。
46、80减90(80-90)需要借位,所以执行结束后,进位标志cf=1。
47、执行“cmp eax,ebx”后,eax和ebx寄存器内容都没有改变。
48、执行“test eax,ebx”后,eax和ebx寄存器内容都没有改变。
49、指令“neg eax”的功能是求eax的绝对值。
50、已知var是一个变量,语句“add esi,byte ptr var”有语法错误。
第5周 顺序程序结构
5-1 移位实现乘法随堂测验
1、指令“shl eax, 1”执行后,eax的最低位一定是:
a、0
b、1
c、与最高位相同
d、与进位cf标志相同
2、如果eax保存一个无符号整数,移位指令“shl eax,3”可以实现:
a、eax数值乘以3
b、eax数值乘以6
c、eax数值乘以9
d、eax数值乘以8
3、对二进制表达的整数来说,左移一位相当于数值乘以2。
4、对二进制表达的整数来说,右移一位相当于数值除以2。
5、理论上,任意两个整数相乘都可以移位、配合加减运算实现。
5-1 移位实现乘法随堂测验
1、ia-32处理器(循环)移位指令不支持的数据位数是:
a、8
b、16
c、32
d、64
2、使用2条32位(循环)移位指令实现64位数据逻辑右移的执行顺序依次是:
a、shr、shr
b、shr、ror
c、shr、rcr
d、rcr、shr
3、对一个64位数据进行一位的左移操作,ia-32处理器可以使用一条shl指令实现。
4、对一个64位数据进行一位的左移操作,ia-32处理器需要使用两条shl指令实现。
5、已知qvar是用qword定义的64位类型的变量,ia-32处理器的指令“shr qvar,1”存在语法错误。
5-2 自然数求和随堂测验
1、用语句“sum qword ?”定义的一个4字(64位)变量sum,存取其高32位数据部分的正确指令是:
a、mov edx, sum
b、mov edx,sum 4
c、mov edx, dword ptr sum
d、mov edx,dword ptr sum 4
2、ia-32处理器的乘法指令“mul ebx”产生的乘积保存在的寄存器是:
a、eax
b、ebx
c、edx和eax
d、ebx和eax
3、对由edx(高32位)和eax(低32位)保存的64位无符号整数进行逻辑右移一位操作,可以使用两条32位(循环)移位指令实现,它们是:
a、shr edx和shr eax
b、shr edx和ror eax
c、shr edx和rcr eax
d、rcr edx和shr eax
4、用语句“sum qword ?”定义的一个4字(64位)变量sum,与32位eax类型不一致,所以“mov sum, eax”存在语法错误。
5、ia-32处理器的乘法指令“mul ebx”产生的乘积是64位的。
5-2 自然数求和随堂测验
1、语句“buffer byte 12 dup(0)”为变量buffer预留了:
a、初值12
b、12个初值为0的存储单元
c、4个初值为0的存储单元
d、3个初值为0的存储单元
2、buffer指向一个字符串缓冲区,bufsize是一个符号常量,指令“mov dword ptr buffer bufsize-13, ebx”的目的操作数的寻址方式是:
a、立即数寻址
b、寄存器寻址
c、直接寻址
d、间接寻址
3、masm中,助记符“cpuid”是ia-32处理器的一条处理器识别指令,该指令能够反馈处理器的有关信息。
4、ia-32处理器上,在eax=0时执行cpuid指令时通过寄存器ecx、edx和ebx返回处理器厂商字符串。
5、程序的顺序结构是不含分支、循环和调用的一条语句(指令)、一条语句(指令)逐个顺序执行的程序结构。
第5周测试
1、8位补码f3h要扩展成16位补码应该是__________,这样其真值才不变。
a、f0f3h
b、00f3h
c、10f3h
d、fff3h
2、能实现寄存器eax的内容乘以2的指令是______。
a、shr eax,1
b、shl eax,1
c、ror eax,1
d、rcr eax,1
3、执行“sar ebx,1”指令后,ebx最高d31位等于__________。
a、0
b、1
c、d0
d、d30
4、8位补码10010100算术右移一位后,其结果为________。
a、11001010
b、01001010
c、00101001
d、00101000
5、使用2条32位(循环)移位指令实现64位数据逻辑左移的步骤依次是__________。
a、shl、shl
b、shl、rol
c、shl、rcl
d、rcl、shl
6、如果ebx保存一个无符号整数,移位指令“shl ebx,4”可以实现:
a、ebx数值乘以4
b、ebx数值乘以8
c、ebx数值乘以12
d、ebx数值乘以16
7、语句“sum dword ?”定义一个变量sum,语法不正确的语句是:
a、mov edx, sum
b、mov edx,sum 4
c、mov sum[4], al
d、mov sum[4], 300
8、无符号数在前面加零扩展,数值不变。
9、有符号数前面进行符号扩展,位数加长一位、数值增加一倍。
10、符号扩展将数据位数加长,自然数据大小也相应增大。
11、算术右移指令执行的操作是:符号位不变,并顺次右移1位,最低位移出。
12、数据左移运算是低位向高位移动,最低位补0。
13、shl指令左移一位,就是乘10。
14、因为edx保存的是无符号整数,所以指令“shr edx,1”可以换做“sar edx,1”。
15、在明确edx保存的是一个正整数的条件下,指令“shr edx,1”与“sar edx,1”完成的功能相同。
16、在一段顺序结构的程序中,通常不应该包含条件转移指令。
17、数据段有语句“sum qword ?”,代码段指令“mov sum, eax”并不存在语法错误。
18、程序的顺序结构是不含分支、循环和调用的一条语句(指令)、一条语句(指令)逐个顺序执行的程序结构。
第6周 分支程序结构
6-1 转移指令随堂测验
1、相对来说,指令寻址中最常用、也最灵活的跳转寻址方式是:
a、存储器间接寻址
b、相对寻址
c、直接寻址
d、寄存器间接寻址
2、指令寻址不支持的跳转寻址方式是:
a、立即数寻址
b、相对寻址
c、直接寻址
d、间接寻址
3、指令寻址是指一条指令执行后,确定执行的下一条指令的位置的方式。
4、ia-32处理器中,指令指针eip或者还包括代码段寄存器cs值的改变将引起程序流程的改变。
5、ia-32处理器中,执行一条指令后,设计指令指针eip自动增量,实现了指令的顺序寻址。
6-1 转移指令随堂测验
1、指令“jmp eax”所采用的指令寻址方式是:
a、相对寻址
b、直接寻址
c、存储器间接寻址
d、寄存器间接寻址
2、已知nvar是一个变量,指令“jmp nvar”所采用的指令寻址方式是:
a、相对寻址
b、直接寻址
c、存储器间接寻址
d、寄存器间接寻址
3、已知label是某条之前的标号,指令“jmp label”的功能是让处理器执行label指示的那条指令。
4、jmp指令的功能对应c语言的goto语句,按照高级语言的结构化思想,汇编语言中也不应使用jmp指令,处理器可以不必设计jmp指令。
5、ia-32处理器设计使用一个字节表达位移量的相对寻址的短转移是为了减少机器代码的长度,提供更紧凑的指令代码、占用更少的存储空间。
6-1 转移指令随堂测验
1、条件转移指令jc发生跳转的条件是:
a、sf=1
b、pf=1
c、of=1
d、cf=1
2、判断两个数相等则跳转,最对应的条件转移指令是______。
a、js
b、je
c、jo
d、jp
3、执行条件转移指令jcc,如果条件cc不成立,则顺序执行下一条指令。
4、对条件zf=1条件成立的条件转移指令,masm设计了两个助记符jz和je,其实是一条指令用了2个助记符,纯属“画蛇添足”。
5、条件转移指令jcc利用的条件需要利用cmp、test等影响标志的指令产生。
6-1 转移指令随堂测验
1、指令“shr eax,1”把eax最低位移入了:
a、sf
b、pf
c、of
d、cf
2、将eax内容加1可以使用的指令是:
a、mov eax,1
b、and eax,1
c、add eax,1
d、sub eax,1
3、对二进制数来说,偶数的最低位一定是0。
4、判断进位标志cf=0发生跳转,使用jnc指令。
5、指令“shr eax,1”执行后,eax最高位是0。
6-1 转移指令随堂测验
1、指令“test eax,02h”执行后,eax等于:
a、0
b、1
c、2
d、不变
2、指令“mov eax,offset no_msg”获取用no_msg表示的字符串地址,其源操作数的数据寻址是:
a、相对寻址
b、直接寻址
c、立即数寻址
d、寄存器间接寻址
3、一个程序片段中,出现了jmp或jcc指令,应该就不再是顺序程序结构了。
4、测试指令test对操作数进行的是“逻辑与”操作。
5、指令“test eax, 01h”常用于测试eax中的d1位。
6-2 单分支结构随堂测验
1、条件转移指令jge发生转移的条件是:
a、无符号整数小于
b、无符号整数大于等于
c、有符号整数小于
d、有符号整数大于等于
2、eax内保存一个有符号整数,执行“cmp eax,0”指令后,希望eax小于0时跳转到done标号处,应使用的条件转移指令是:
a、ja done
b、jb done
c、jg done
d、jl done
3、这里的“单分支结构”是指条件不满足顺序执行分支体,条件满足跳过分支体执行。
4、在汇编语言中用jcc指令形成单分支结构,条件满足顺序执行分支体。
5、不论eax保存什么整数,指令“neg eax”都可以实现求eax绝对值的功能。
6-2 单分支结构随堂测验
1、下面哪一条指令可以将al中存放的英文大写字母变为小写字母?
a、sub al,20h
b、or al,20h
c、and al,20h
d、test al,20h
2、下面哪一条指令可以将al中存放的英文小写字母变为大写字母?
a、sub al,20h
b、or al,20h
c、and al,20h
d、test al,20h
3、jb和ja指令都属于处理器的程序流程控制指令。
4、同一个英文字母其大小写,在ascii表中的数值相差32(=20h)。
5、大写字母“a”的ascii值是61h。
6-3 双分支结构随堂测验
1、不能将ebx的最高位移入cf标志的指令是:
a、shl ebx,1
b、rcl ebx, 1
c、rol ebx, 1
d、sar ebx, 1
2、指令“mov al,'0'”执行后,al等于:
a、0
b、30
c、30h
d、40h
3、指令“mov al, 1”执行后,al等于:
a、1
b、31
c、31h
d、41h
4、这里的“双分支结构”是指条件满足和不满足各自执行一个分支体,但最后都从共用的出口开始执行后续指令。
5、在双分支程序结构中,顺序执行的分支体最后需要jmp指令,目的是使第一个分支体执行结束之后,跳过第二个分支体,避免误入第二个分支体中。
6-3 双分支结构随堂测验
1、指令“mov dvar3,eax”进行是多少位的数据传输?
a、64
b、32
c、16
d、8
2、指令“mov dvar3,eax”目的操作数和源操作数的数据寻址方式分别是:
a、立即数寻址、寄存器寻址
b、寄存器寻址、寄存器寻址
c、直接寻址、寄存器寻址
d、直接寻址、寄存器间接寻址
3、通用处理器中普遍采用补码表达有符号整数。
4、用8位进制补码表达一个有符号整数,数值“-150”无法表达。
5、两个有符号整数加减运算后,结果是否溢出应使用jo或jno指令判断。
第6周测试
1、指令“jmp eax”所采用的指令寻址方式是______。
a、相对寻址
b、直接寻址
c、存储器间接寻址
d、寄存器间接寻址
2、已知nvar是一个变量,指令“jmp nvar”所采用的指令寻址方式是______。
a、相对寻址
b、直接寻址
c、存储器间接寻址
d、寄存器间接寻址
3、已知nvar是一个变量,指令“jmp nvar”中访问nvar所采用的数据寻址方式是______。
a、寄存器寻址
b、存储器的直接寻址
c、存储器的寄存器间接寻址
d、存储器的寄存器相对寻址
4、ia-32处理器的跳转指令用jmp助记符表示,它属于处理器的________类指令。
a、逻辑运算
b、算术运算
c、程序控制
d、数据传送
5、已知again是一个标号,则指令”jmp again”中,again不包含______。
a、near或者far类型
b、byte或者dword类型
c、逻辑地址
d、段内或者段间类型
6、在一段顺序结构的程序中,不应该出现的指令是______。
a、div
b、add
c、jz
d、mul
7、masm中,实现段间转移的转移类型属性是______。
a、short
b、near
c、far
d、ptr
8、条件转移指令jcc采用指令寻址的__________方式。
a、相对寻址
b、直接寻址
c、寄存器间接寻址
d、存储器间接寻址
9、判断两个数相等则跳转,最对应的条件转移指令是______。
a、js
b、jz
c、jo
d、jp
10、判断两个数不相等则跳转,最对应的条件转移指令是______。
a、jns
b、jne
c、jno
d、jnp
11、两个有符号整数比较,在大于情况下发生跳转,判断条件的转移指令是______。
a、ja
b、jl
c、jb
d、jg
12、两个无符号整数比较,在大于情况下发生跳转,判断条件的转移指令是______。
a、ja
b、jl
c、jb
d、jg
13、使用cmp指令比较两个有符号数之后,程序希望“大于”时发生转移,则应该使用的条件转移指令是__________。
a、jb
b、ja
c、jc
d、jg
14、如果eax=100、edx=200时,执行“cmp eax, edx”指令,接着__________条件转移指令会发生控制转移。
a、jo
b、jz
c、jb
d、ja
15、如果eax=101h、edx=200h时,执行“cmp eax, edx”指令,标志状态正确的是__________为1。
a、of
b、zf
c、cf
d、pf
16、已知ebx和ecx保存着有符号整数,指令“cmp ebx, ecx”执行后,下条指令“jl first”在__________条件下发生转移?
a、ebx小于ecx
b、ebx 大于ecx
c、ebx 等于ecx
d、ebx 大于等于ecx
17、用_____________条指令可以使jz指令的条件成立、程序发生转移。
a、in al, dx
b、xor ecx, ecx
c、or ebx,0fh
d、mov edx,0
18、指令“jge nonneg”中的jge可以用那一条指令替换?
a、jae
b、ja
c、jnl
d、jle
19、下面程序片段条件转移语句发生跳转的条件是al=______。 cmp al,0fbh jnl next
a、80h
b、8fh
c、0f0h
d、0ffh
20、下面程序片段条件转移语句发生跳转的条件是al=______。 cmp al,80h jnb next
a、80h
b、7fh
c、10h
d、70h
21、当逻辑运算and指令执行后,低8位结果中“1”的个数是零或偶数发生转移的指令是__________。
a、jp
b、jnp
c、jz
d、jnz
22、指令指针eip或者还包括代码段寄存器cs值的改变将引起程序流程的改变。
23、cs不变,只改变eip值,不能改变程序的执行顺序。
24、jmp指令的功能对应c语言的goto语句,按照高级语言的结构化思想,汇编语言中也不应使用jmp指令,处理器也不必设计jmp指令。
25、指令“jmp ebx”的转移目标地址来自寄存器ebx。
26、条件转移指令jc和jb虽然是两个助记符,但却是同一个指令。
27、执行jnz指令发生转移的条件是zf=1 。
28、执行jns指令顺序执行的条件是sf=1 。
29、对无符号数和有符号数进行加减采用同样的指令,所以比较两者大小的条件转移指令也可以采用同样的指令。
30、ja和jg指令的条件都是“大于”,所以是同一个指令的两个助记符。
31、测试ecx是否等于0,可以使用“cmp ecx,0”指令,也可以使用“test ecx,ecx”指令。
32、采用偶校验对数据编码,8位二进制编码“101001001”符合偶校验规则。
33、在双分支程序结构中,顺序执行的分支体最后需要jmp指令,目的是使第一个分支体执行结束之后,跳过第二个分支体,避免误入第二个分支体中。
34、汇编语言编写双分支结构的程序通常要使用jcc指令进行分支,顺序执行的分支体最后需要jmp指令,该jmp指令无论如何分支都一定会被执行。
第7周 循环程序结构
7-1 循环指令随堂测验
1、ia-32处理器的loop指令隐含使用哪个寄存器作为计数器?
a、eax
b、ebx
c、ecx
d、edx
2、ia-32处理器的jecxz指令发生跳转的条件是:
a、ecx=0
b、ecx≠0
c、ecx=1
d、ecx≠1
3、ia-32处理器的loop指令常用于增量计数的循环控制。
4、ia-32处理器的loop指令包含有对ecx寄存器减1的功能。
5、ia-32处理器的loop指令先对ecx是否为0进行判断,然后再执行对ecx寄存器减1的操作。
7-1 循环指令随堂测验
1、使用loop指令控制计数循环,循环次数应赋予的寄存器是:
a、eax
b、ebx
c、ecx
d、edx
2、如果程序需要连续访问大型数组中的每个元素,不适宜采用的存储器寻址方式是:
a、直接寻址
b、寄存器间接寻址
c、寄存器相对寻址
d、寄存器变址寻址
3、数据段有语句“array dword 136,-138,133,130,-161”,则“type array”等于:
a、1
b、2
c、4
d、8
4、array指向一个数组,指令“add eax,array[ebx*(type array)]”的源操作数寻址方式是:
a、寄存器寻址
b、寄存器间接寻址
c、寄存器相对寻址
d、带比例的寄存器变址寻址
5、指令“xor eax,eax”的作用是让寄存器eax等于0。
7-1 循环指令随堂测验
1、汇编语言程序中,只能实现“先循环、后判断”,不能实现“先判断、后循环”结构。
2、“先循环、后判断”的循环程序结构,循环体至少执行一次。
3、“先判断、后循环” 的循环程序结构,循环体可能一次都不执行。
4、c语言的语句“for(i=1; i<=100; i ) sum=sum i;”对应这里的增量计数控制循环。
5、c语言的语句“for(i=100; i>0; i--) sum=sum i;”对应这里的减量计数控制循环。
7-2 计数控制循环随堂测验
1、有50个数值,使用循环结构逐个比较方法求出最大值,程序的循环次数是:
a、50
b、49
c、51
d、25
2、数据段有语句“array dword -3,0,20,900,-56”,则“lengthof array”等于:
a、5
b、10
c、15
d、20
3、loop指令适合实现减量计数控制循环。
4、采用寄存器间接寻址从头开始访问数组的每个元素,初始通常应将该寄存器赋值为数组首地址。
5、采用寄存器相对寻址从头开始访问数组的每个元素,初始可以将该寄存器赋值为0。
7-3 条件控制循环随堂测验
1、对于字符串string,如果使用寄存器相对寻址“string[ebx]”访问其头一个元素,ebx应该赋值为:
a、0
b、1
c、字符串长度
d、字符串长度减1
2、指令“cmp al,0”执行后,指令“jz done”发生转移时,al寄存器:
a、等于0
b、等于“0”字符(即:'0')
c、等于空格字符(显示空白)
d、不等于0
3、条件控制循环通常需要使用条件转移指令进行是否继续循环的判断。
4、通常情况下,“先判断、后循环”的循环程序结构可以修改为“先循环、后判断”的循环程序结构。
5、在汇编语言程序层面,条件控制循环结构与分支结构有相通的地方,循环体可以看做是需要多次执行的分支体。
第7周测试
1、使用loop指令控制计数循环,循环次数应赋予的寄存器是:
a、eax
b、ebx
c、ecx
d、edx
2、jecxz指令发生转移的条件是__________。
a、ecx=0
b、ecx≠0
c、zf=0
d、zf=1
3、设置ecx=100后,语句“delay: loop delay”会循环执行______次。
a、0
b、99
c、100
d、101
4、若ecx=0,则语句“again: loop again”将会重复执行_____________次。
a、0
b、1
c、
d、
5、如果程序需要连续访问大型数组中的每个元素,不适宜采用的存储器寻址方式是:
a、直接寻址
b、寄存器间接寻址
c、寄存器相对寻址
d、寄存器变址寻址
6、对于字符串string,如果使用寄存器间接寻址“[ebx]”访问其头一个元素,ebx应该赋值为:
a、字符串首地址
b、字符串末地址
c、字符串长度
d、字符串首地址减1
7、若ecx=0,则loop指令和jecx指令都发生转移。
8、ia-32处理器的loop指令常用于增量计数的循环控制。
9、ia-32处理器的loop指令包含有对ecx寄存器减1的功能。
10、判断循环是否结束的循环控制部分只能安排在循环体之后。
11、循环初始值应该属于循环体之中。
12、通常循环体中应该包含进行循环条件修改的代码。
13、采用寄存器相对寻址从头开始访问数组的每个元素,初始可以将该寄存器赋值为0。
第8周 子程序结构
8-1 子程序设计随堂测验
1、ia-32处理器调用子程序前,将返回地址保存在:
a、数据段
b、代码段
c、堆栈段
d、附加段
2、指令“call eax”的指令寻址是:
a、寄存器寻址
b、寄存器间接寻址
c、相对寻址
d、直接寻址
3、主程序调用子程序使用call指令。
4、子程序返回主程序利用ret指令。
5、ret指令通常应该是子程序最后一条执行的指令。
8-1 子程序设计随堂测验
1、指令“mov esi,[ebp 4]”的源操作数来自:
a、数据段
b、代码段
c、堆栈段
d、附加段
2、ia-32处理器的call指令压入堆栈的返回地址是call指令下条指令的地址。
3、返回指令ret从当前堆栈顶部获得返回地址。
4、子程序开始压入ebp保护,但返回前忘记弹出,这会导致原ebp内容出错,但子程序还可以正常返回。
5、语句“call next”之后,接着是语句“next: pop eax”,执行这两个指令后,eax保存当前指令、即pop指令,也就是标号next的地址。
8-1 子程序设计随堂测验
1、masm的过程定义伪指令proc说明过程(含子程序)开始,与之配合子程序结束时还有一个伪指令是:
a、endp
b、endm
c、neds
d、ret
2、子程序设计应该关注的原则中,不正确的是:
a、压入和弹出操作要成对使用,保持堆栈平衡
b、子程序开始保护寄存器,返回前相应恢复
c、子程序允许嵌套
d、子程序不允许递归
3、dos/windows操作系统下,控制显示器光标回到下行首列,需要两个控制字符,它们的ascii值是:
a、0dh,0
b、0ah,0
c、0dh,0ah
d、09h,07h
4、过程定义proc是一条处理器指令。
5、子程序设计无需关注参数传递问题。
8-2 参数传递随堂测验
1、一个双字(二进制32位)数据,以十六进制形式显示,需要显示十六进制多少位?
a、1
b、2
c、4
d、8
2、4位二进制代码“1010”对应十六进制“a”,将这个4位二进制代码按照十六进制输出,需要转换为字母“a”的ascii,这需要在这个4位二进制代码基础上加:
a、37h
b、39h
c、41h
d、61h
3、寄存器传递参数的方法只适用于传递主程序给子程序的入口(输入)参数。
4、子程序中无论在任何情况下都应保存所有的寄存器、包括出口参数的寄存器。
5、对数值0~9,只要加30h,就依次成为字符'0'~'9'的ascii码。
8-2 参数传递随堂测验
1、temp是定义在数据段的变量,主程序将数据保存在temp变量中,子程序从该变量中取用数据,这是什么参数传递方式?
a、寄存器
b、共享变量
c、堆栈
d、虚实结合
2、这里的共享变量对应c/c 语言的全局变量。
3、对于大量保存在主存储器缓冲器的参数,通常只能通过传递地址的方式,也被称为“传递引用”。
4、共享变量的参数传递方式只适合传递子程序返回给主程序的出口(输出)参数。
5、输入二进制数的正确数字应该只有0和1。
8-2 参数传递随堂测验
1、主程序压入堆栈8个字节数据传递给子程序,平衡堆栈时需要将esp:
a、加8
b、减8
c、加2
d、减2
2、除法指令“idiv ecx”的64位被除数在:
a、edx和ecx中
b、edx和ebx中
c、edx和eax中
d、ecx和ebx中
3、在80x86处理器上,c语言进行函数调用带入的参数实质上就是采用堆栈传递参数。
4、如果删除主程序指令“add esp,8”,但子程序中“ret”指令改为“ret 8”,示例程序仍能正确完成预期功能。
5、ia-32处理器中,利用ebp(或esp)、而不是ebx、esi等间接或相对寻址访问堆栈,是因为ebp(或esp)间接或相对寻址的默认逻辑段是堆栈段。
8-3 程序模块随堂测验
1、masm包含源程序文件使用的伪指令是:
a、include
b、includelib
c、#include
d、define
2、语句“include io32.inc”说明采用什么masm支持的多模块方法。
a、源文件包含
b、模块连接
c、子程序库
d、库文件包含
3、源文件包含的方式需要将多个源程序文件分别汇编。
4、模块连接中的“模块”是指汇编(编译)后形成的目标模块obj文件。
5、masm中使用public伪指令说明某个变量、子程序等可以被其他模块文件调用。
8-3 程序模块随堂测验
1、masm包含子程序库文件使用的伪指令是:
a、include
b、includelib
c、#include
d、define
2、语句“includelib io32.lib”说明采用什么masm支持的多模块方法。
a、源文件包含
b、模块连接
c、子程序库
d、库文件包含
3、加入子程序库的文件通常是子程序的源程序文件。
4、子程序库和子程序库文件包含的方法本质没有区别,只是连接过程的具体操作不同罢了。
5、存入子程序库的子程序都应该利用public说明,表示其他程序模块可以调用。
8-3 程序模块随堂测验
1、进行宏定义,在masm中使用macro开始,需要使用__________结束。
a、endm
b、ends
c、endp
d、end
2、宏的特点不包括:
a、宏不减小目标程序,执行速度没有改变
b、宏通过形参、实参结合实现参数传递
c、宏常依附于源程序
d、宏调用要call指令转向、ret指令返回
3、宏调用在汇编时进行程序语句的展开,不需要返回。
4、masm中,宏需要先定义后使用,且不必在任何段中。
5、宏也封装了一段程序,所以与子程序本质上相同。
第8周测试
1、对应主程序call指令调用子程序,子程序结束通常采用______指令返回主程序。
a、jmp
b、call
c、endp
d、ret
2、子程序最后,通常需要执行的返回指令是__________。
a、loop
b、jz
c、ret
d、call
3、进行子程序设计时,masm要求使用______伪指令对。
a、segment / ends
b、proc / endp
c、macro / endm
d、call / ret
4、ia-32处理器使用call指令调用子程序时,返回地址被保存到______。
a、共享变量
b、寄存器ebp
c、当前堆栈顶部
d、寄存器esp
5、指令“call ebx”采用了指令的__________方式。
a、相对寻址
b、直接寻址
c、寄存器间接寻址
d、存储器间接寻址
6、主程序将数据本身传递给子程序,这是_______。
a、传数值的入口参数
b、传地址的入口参数
c、传数值的出口参数
d、传地址的出口参数
7、接着call指令的32位存储器地址是00450806h,则call指令执行时压入堆栈的数据从存储器低地址到高地址,按字节为单位依次是_____________。
a、00h,45h,08h,06h
b、06h,08h,45h,00h
c、00h,08h,45h,06h
d、06h,45h,08h,00h
8、指令“mov esi,[ebp 4]”的源操作数来自_____________。
a、数据段
b、堆栈段
c、代码段
d、附加段
9、masm包含子程序库文件使用的伪指令是:
a、include
b、includelib
c、#include
d、define
10、关于宏汇编,如下论述错误的是_____________。
a、像子程序调用一样,宏指令需要使用call指令进行宏调用
b、需要先进行宏定义,然后才能进行宏调用
c、宏定义可以进行嵌套
d、在源程序进行汇编的阶段进行宏展开
11、进行宏定义的一对伪指令是_______。
a、segment / ends
b、proc / endp
c、macro / endm
d、call / ret
12、masm包含源程序文件使用的伪指令是________。
a、include
b、includelib
c、#include
d、define
13、call指令执行后,堆栈的栈顶内容为______。
a、子程序的入口地址
b、call指令的下一条指令
c、call指令的下一条指令的地址
d、call指令所在地址
14、masm汇编语言用于定义子程序的伪指令是______。
a、proc
b、proc 和endp
c、procedure
d、procudure和endp
15、call指令的执行并不影响堆栈指针esp。
16、指令call的执行涉及堆栈操作。
17、子程序返回主程序使用ret指令。
18、ia-32处理器使用call调用子程序。
19、返回指令ret执行时,从当前堆栈顶部弹出返回地址。
20、过程定义proc是一条masm伪指令。
21、指令“ret i16”返回子程序的运行结果i16。
22、子程序不能进行嵌套调用。
23、带有出口参数的寄存器,子程序不必在进入时进行保护,所以在返回主程序前也不必恢复。
24、进入子程序后,将eax、ebx、ecx和edx按顺序压入堆栈,则子程序返回前弹出这些寄存器的顺序还是eax、ebx、ecx和edx。
25、子程序的开始时使用push压入寄存器的顺序应于返回前pop寄存器的顺序相同,这样才能保证寄存器恢复正确。
26、子程序需要保护寄存器,包括保护传递入口参数和出口参数的通用寄存器。
27、分配在数据段的共享变量可用于主程序与子程序之间传递参数,这类似c语言的全局变量。
28、堆栈操作需要保持压入和弹出的区域平衡,但当使用堆栈将主程序参数传递给子程序时就不必了。
29、模块连接中的“模块”是指汇编(编译)后形成的目标模块obj文件。
30、使用宏进行源程序的编写,不仅简化了源程序的编写,同时也将其生成的目标代码变的更小。
31、利用include包含的源文件实际上只是源程序的一部分。
32、宏调用与子程序调用一样都要使用call指令实现。
汇编语言课程考试
汇编语言课程考试
1、应用程序具有3个基本段,可执行指令应该保存于__________。
a、代码段
b、数据段
c、堆栈段
d、附加段
2、8位补码f3h要扩展成16位补码应该是__________,这样其真值才不变。
a、f0f3h
b、00f3h
c、10f3h
d、fff3h
3、将汇编语言源程序文件翻译成目标代码文件的过程,称为_________。
a、编辑
b、汇编
c、连接
d、调试
4、“mov [ebx 8],eax”指令的目的操作数采用__________寻址方式。
a、存储器间接
b、寄存器
c、寄存器相对
d、立即数
5、add求和指令的结果最高位为1,则sf=__________。
a、0
b、1
c、任意
d、不影响
6、执行“sar ebx,1”指令后,ebx最高d31位一定等于__________。
a、0
b、1
c、d0位
d、d30位
7、在代码段内的-128~127个字节前后范围的跳转,可以用___________类型名表示。
a、word
b、dword
c、short
d、far
8、子程序最后,通常需要执行的返回指令是__________。
a、loop
b、jz
c、call
d、ret
9、ia-32处理器定义双字(dword)表示__________位。
a、8
b、16
c、32
d、64
10、“mov eax,2010”指令的目的操作数采用__________寻址方式。
a、立即数
b、寄存器
c、寄存器相对
d、寄存器间接
11、masm要求编写子程序时应该使用_____________伪指令定义。
a、macro和endm
b、call和ret
c、public和private
d、proc和endp
12、将一个或多个目标代码文件合成为可执行文件的过程,称为_________。
a、编辑
b、汇编
c、连接
d、调试
13、如果eax=100、edx=200时,执行“cmp eax, edx”指令,接着__________条件转移指令会发生控制转移。
a、jo
b、jz
c、jb
d、ja
14、指令“push edi”执行后,寄存器esp被__________。
a、减2
b、减4
c、加2
d、加4
15、主程序将数据本身传递给子程序,这是____________。
a、传地址的入口参数
b、传地址的出口参数
c、传数值的入口参数
d、传数值的出口参数
16、汇编程序masm支持的用户标识符可以是_____________。
a、gothere
b、ebp
c、add
d、3721a
17、汇编程序masm支持的用户标识符可以是_____________。
a、welldone
b、eip
c、sbb
d、3721b
18、pc机cmos ram的7号单元保存压缩bcd码格式的日期,11月某天从中读取的是11h编码,则说明当天是11月__________日。
a、11
b、12
c、16
d、17
19、数据段有变量定义语句“wdvar word 4,5”,如下正确的指令是__________。
a、xchg ecx, wvar
b、in ax, wvar
c、add bx, byte ptr wvar
d、mov wvar, 6
20、使用cmp指令比较两个有符号数之后,程序希望“大于”时发生转移,则应该使用的条件转移指令是__________。
a、jb
b、ja
c、jc
d、jg
21、已知edx=12345678h,则dh=__________。
a、12h
b、34h
c、56h
d、78h
22、数据段有语句“dword 25 dup(?)”,它将占据主存__________字节存储空间。
a、25
b、50
c、75
d、100
23、接着call指令的32位存储器地址是00450806h,则call指令执行时压入堆栈的数据从存储器低地址到高地址,按字节为单位依次是_____________。
a、00h,45h,08h,06h
b、06h,08h,45h,00h
c、00h,08h,45h,06h
d、06h,45h,08h,00h
24、如果eax=101h、edx=200h时,执行“cmp eax, edx”指令,标志状态正确的是__________为1。
a、of
b、zf
c、cf
d、pf
25、指令“pop edi”执行后,寄存器esp被__________。
a、减2
b、减4
c、加2
d、加4
26、用_____________条指令可以使jz指令的条件成立、程序发生转移。
a、in al, dx
b、xor ecx, ecx
c、or ebx,0fh
d、mov edx,0
27、如下符号_____________不是masm支持的关键字。
a、done
b、include
c、.model
d、@data
28、一个32位数据“22446688h”存放于从400410h开始的4个存储单元中,其中400411h存储单元存放的数据是__________。
a、22h
b、44h
c、66h
d、88h
29、利用ebp访问主存数据,默认是在__________寄存器指向的段中。
a、数据段ds
b、堆栈段ss
c、代码段cs
d、附加段es
30、ia-32处理器的条件转移jcc指令采用目标地址的__________寻址。
a、直接
b、寄存器间接
c、存储器间接
d、相对
31、指令“test edx, [ebx]”的目的操作数和源操作数分别采用__________寻址方式。
a、寄存器和立即数
b、寄存器和寄存器间接
c、直接和寄存器相对
d、直接和寄存器间接
32、关于宏汇编,如下论述错误的是_____________。
a、像子程序调用一样,宏指令需要使用call指令进行宏调用
b、需要先进行宏定义,然后才能进行宏调用
c、宏定义可以进行嵌套
d、在源程序进行汇编的阶段进行宏展开
33、执行16位减法sub指令后,结果为3721h,则标志状态正确的是__________。
a、zf=1
b、sf=1
c、pf=1
d、pf=0
34、若ecx=0,则语句“again: loop again”将会重复执行_____________次。
a、0
b、1
c、
d、
35、对于十进制数96,如果采用8位8421bcd码表达,应该是__________。
a、01100000b
b、10010110b
c、00000110b
d、10010000b
36、在masm汇编语言中,如下各个进制常数,_________是错误的。
a、64
b、64h
c、a0h
d、0100b
37、语句“dword 1, 2, 3”汇编后占用的存储空间是_____________个字节。
a、3
b、6
c、9
d、12
38、指令“mov [ebx 4],al”的源操作数采用__________寻址方式。
a、寄存器相对
b、寄存器
c、寄存器间接
d、基址变址
39、执行8位二进制加法“99h 31h”后,标志位正确的是__________。
a、zf=0,pf=0,sf=0
b、zf=1,pf=1,sf=1
c、zf=1,pf=0,sf=1
d、zf=0,pf=1,sf=1
40、能将cf标志位移入eax最低位的指令是__________。
a、rcl eax, 1
b、rcr eax, 1
c、ror eax, 1
d、rol eax, 1
41、指令“mov esi,[ebp 4]”的源操作数来自_____________。
a、数据段
b、堆栈段
c、代码段
d、附加段
42、汇编语言中的“end begin”中的begin指的是_______。
a、程序开始执行的位置
b、程序终止执行的位置
c、程序开始汇编的位置
d、程序终止汇编的位置
43、c语言字符串被编译程序自动加入结尾字符,它对应的ascii字符是________。
a、nul(指第一个字符,ascii码值是0)
b、sp(指空格,ascii码值是20h)
c、'0'(指数码0,ascii码值是30h)
d、不属于ascii表的任何字符
44、语句“byte 100”定义的数据是_________。
a、64
b、100b
c、64h
d、100h
45、语句“dword 5 dup(1,2)”分配主存的存储单元个数是__________。
a、5
b、10
c、20
d、40
46、对于一个32位数据,边界对齐的存储器地址是__________。
a、0450h
b、0451h
c、0452h
d、0453h
47、语句“mov eax,offset dvar”中(dvar是变量)采用立即数寻址的部分是_________。
a、eax
b、offset
c、offset dvar
d、dvar
48、已知var是一个变量,与指令“lea ebx,var”相同功能的语句是__________。
a、mov ebx,var
b、mov ebx,offset var
c、lea ebx,offset var
d、mov ebx,seg var
49、进行宏定义的一对伪指令是__________。
a、segment / ends
b、proc / endp
c、macro / endm
d、call / ret
50、地址对齐的32位数据,存放于存储器的起始地址的低2位是___________。
a、00
b、01
c、10
d、11
51、ia-32处理器状态标志of=1的定义是__________的结果超出范围。
a、两个无符号整数加减
b、两个无符号整数乘除
c、两个有符号整数加减
d、两个有符号整数乘除
52、标志cf=1时发生跳转的条件转移指令是__________。
a、jo
b、jno
c、jnc
d、jc
53、某个双字变量存放于存储器地址0403h~0406h中,对齐了地址边界。
54、指令“mov eax,[ebx]”中有效地址ea是ebx的内容。
55、进位和溢出标志都表达结果超出范围,所以加法运算有溢出,一定也进位了。
56、执行“test eax,ebx”后,eax和ebx寄存器内容都没有改变。
57、shl指令左移一位,就是乘10。
58、ja和jg指令的条件都是“大于”,所以是同一个指令的两个助记符。
59、堆栈操作需要保持压入和弹出的区域平衡,但当使用堆栈将主程序参数传递给子程序时就不必了。
60、ia-32处理器的esp与ss配合指向堆栈段当前栈顶。
61、汇编结束也就是程序执行终止。
62、按照masm语法,“ah”是一个寄存器名,“0ah”表达十六进制数。
63、变量指向存储单元,所以访问变量就是存储器寻址。
64、语句“mov [ebx],250”没有masm语法错误。
65、堆栈操作指令也属于传送类指令,指令“pop ecx”中,寄存器ecx是源操作数。
66、ia-32处理器执行程序时,主程序调用子程序使用call指令。
67、在cf=1的情况下,sub指令和sbb指令的功能相同。
68、无符号数在前面加零扩展,数值大小不变;有符号数前面进行符号扩展,位数加长一位、数值增加一倍。
69、对于常数41h,在汇编语言中表达成字符’a’也是正确的,因为’a’的ascii码就是41h。
70、masm汇编语言用逗号分隔两个操作数或者参数,英文逗号或者中文逗号都可以。
71、伪指令“var dword 0b0h”没有masm语法错。
72、利用include包含的源文件实际上只是源程序的一部分。