好文档 - 专业文书写作范文服务资料分享网站

32位汇编语言程序设计 钱晓捷

天下 分享 时间: 加入收藏 我要投稿 点赞

32位汇编语言程序设计1.简答 第一章

1.1 简答题-1

(1)哪个处理器的指令系统成为Intel 80x86系列处理器的基本指令集? ?

8086

(3)什么是通用寄存器? ?

一般指处理器最常使用的整数寄存器,可用于保存整数数据、地址等

(6)最高有效位MSB是指哪一位? ?

数据的最高位,例如对8、16、32位数据,MSB依次指D7、D15和D31位

1.1 简答题-2

(7)汇编语言中的标识符与高级语言的变量和常量名的组成原则有本质的区别吗? ?

没有

(8)汇编语言的标识符大小写不敏感意味着什么? ?

表示字母大小写不同、但表示同一个符号

1.2 判断题-1

1)EAX也被称为累加器,因为它使用最频繁。 ?

对,EAX中的A来自英文累加器(Accumulator)

2)指令指针EIP寄存器属于通用寄存器。 ?

错,EIP只用于指示指令地址,不做它用,属于专用寄存器。

3)IA-32处理器在实地址方式下,不能使用32位寄存器。 ?

错,实地址方式可以使用32位的寄存器、操作数和寻址方式。

4)保护方式下,段基地址加偏移地址就是线性地址或物理地址。 ?

1.2 判断题-2

5)Windows的模拟DOS环境与控制台环境是一样的。 ?

错,外观和基本操作基本相同,但实质完全不同。 对。

6)处理器的传送指令MOV属于汇编语言的执行性语句 ?

7)汇编语言的语句由明显的4部分组成,不需要分隔符区别。

11

? 错,使用了分隔符才有了明显的4部分

8)MASM汇编语言的注释用分号开始,不能用中文分号 ?

对,源程序中的分隔符以及各种标识符都是英文

1.2 判断题-3

9)程序终止执行也就意味着汇编结束,所以两者含义相同。 ?

错,两者完全是两个概念

10)源程序文件和列表文件都是文本性质的文件。 ?

对,文本文件一般是只包含字符内容的文件,可以使用Windows的记事本打开。

1.3 填空题-1

(1)Intel 8086支持___容量主存空间,IA-32处理器支持___容量主存空间。 ?

1MB,4GB

(2)英特尔___处理器将80x86指令系统升级为32位指令系统,___处理器内部集成浮点处理单元、开始支持浮点操作指令。 ?

80386,80486

(3)IA-32处理器有8个32位通用寄存器,其中EAX,___,___和EDX,可以分成16位和8位操作;还有另外4个是___,___,___,和___。 ?

1.3 填空题-2

(4)寄存器EDX是___位的,其中低16位的名称是____,还可以分成两个8位的寄存器,其中D0~D7和D8~D15部分可以分别用名称____和____表示。 ?

32,DX,DL,DH

EBX,ECX,ESI,EDI,EBP,ESP

(5)IA-32处理器有___个段寄存器,它们都是_____位的。 ?

6,16

(6)IA-32处理器复位后,首先进入是____工作方式。该工作方式分段最大不超过____。 ?

实地址,64KB

1.3 填空题-3

(7)逻辑地址由___和___两部分组成。代码段中下一条要执行的指令由CS和___寄存器指示,后者在实地址模型中起作用的仅有___寄存器部分。 ?

段基地址,偏移地址,EIP,IP

(8)Windows的文件夹对应的专业术语是_____。 ?

目录

(9)指令由表示指令功能的____和表示操作对象的___部分组成,IA-32处理器的指令前缀属于____

12

部分。 ?

操作码,操作数(地址码),操作码

(10)MASM要求汇编语言源程序文件的扩展名是___,汇编产生扩展名为OBJ的文件被称为___文件,编写32位Windows应用程序应选择___存储模型。 ? 习题1.9 ? ?

IA-32处理器有哪三类基本段,各是什么用途? 解答:

ASM,目标模块,FLAT

代码段:存放程序的指令代码

数据段:存放当前运行程序所用的数据 堆栈段:主存中堆栈所在的区域 习题1.13 ? ?

汇编语言语句有哪两种,每种语句由哪4个部分组成 解答:

汇编语句有两种

执行性语句(处理器指令) 说明性语句(伪指令) 每个语句由4部分组成 标号 指令助记符 操作数或参数 注释 习题1.15 ? ?

MASM汇编语言中,下面哪些是程序员可以使用的自定义标识符。 FFH,DS,Again,next,@data,h_ascii,6364b,flat 解答:

FFH,Again,next,h_ascii 其他符号错误的原因: DS是数据段寄存器名 6364b是数字开头

@data是汇编语言使用预定义符号,表示数据段地址 flat是表示平展存储模型的关键字

13

习题1.16 ? ?

汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。 解答:

汇编语言程序的开发有4个步骤:

编辑:用文本编辑器形成一个以ASM为扩展名的源程序文件。 汇编:用汇编程序将ASM文件转换为OBJ模块文件。

连接:用连接程序将一个或多个目标文件链接成一个EXE或COM可执行文件。 调试:用调试程序排除错误,生成正确的可执行文件。

第2章 数据表示和寻址

2.1 简答题

(2)字符“'F'”和数值46H作为MOV指令的源操作数有区别吗? ?

没有,因为字符“'F'”的ASCII码就是数值46H

(3)为什么可以把指令“MOV EAX, (34+67H)*3”中的数值表达式看成是常量? ?

汇编程序在汇编过程中对数值表达式计算,得到一个确定的数值,故称数值表达式为常量

(4)汇编语言为什么规定十六进制数若以A~F开头,需要在前面加个0? ?

以便与标识符区别,因为标识符要求以字母(或特殊符号)开头

2.1 简答题-2

(7)为什么将查找操作数的方法称为数据寻“址”方式? ?

指令的操作数需要通过存储器地址或I/O地址,才能查找到数据本身,故称数据寻址方式

(8)为什么变量VAR在指令“MOV EAX, VAR”中表达直接寻址? ?

因为这里的变量名VAR实际上表达了变量所存放的主存单元,即[地址]

2.2 判断题-1

(1)对一个正整数,它的原码、反码和补码都一样,也都与无符号数的编码一样。 ?

(2)常用的BCD码为8421 BCD码,其中的8表示D3位的权重。 ?

(3)排序一般按照ASCII码值大小,从小到大升序排列时,小写字母排在大写字母之前。 ?

错。小写字母的ASCII值大于大写字母,升序排列应该排在后。

2.2 判断题-2

(4)用“BYTE”和“DWORD”定义变量,如果初值相同,则占用的存储空间也一样多。 ?

错。用BYTE只占一个存储单元,而DWORD要占4个存储单元

(5)“TYPE DX”的结果是一个常量,等于2。 ?

对。TYPE后跟寄存器名得到寄存器数据的字节数。

14

(6)IA-32处理器采用小端方式存储多字节数据。 ?

对。

2.2 判断题-3

(7)某个双字变量存放于存储器地址0403H~0406H中,对齐了地址边界。 ?

错,没有对齐,因为双字变量对齐地址边界是起始于模4地址,即4×N地址。

(8)立即数寻址只会出现在源操作数中。 ?

(9)存储器寻址方式的操作数当然在主存了。 ?

(10)指令“MOV EAX, VAR+2”与 “MOV EAX, VAR[2]”功能相同。 ?

对,仅是不同的形式罢了

2.3 填空题-1

(1)计算机中有一个“01100001”编码。如果把它认为是无符号数,它是十进制数____;如果认为它是BCD码,则表示真值_____;又如果它是某个ASCII码,则代表字符____。 ?

97,61,小写字母a

(2)C语言用“\\n”表示让光标回到下一行首位,在汇编语言中需要输出两个控制字符:一个是回车,其ASCII码是_____,它将光标移动到当前所在行的首位;另一个是换行,其ASCII码是____,它将光标移到下一行。 ?

0DH(13),0AH(10)

2.3 填空题-2

(3)定义字节变量的伪指令助记符是_____,获取变量名所具有的偏移地址的操作符是____。 ?

BYTE,OFFSET

(4)数据段有语句“H8843 DWORD 99008843H”,代码段指令“MOV CX, WORD PTR H8843”执行后,CX=_______。 ?

8843H

(5)用DWORD定义的一个变量XYZ,它的类型是____,用“TYPE XYZ”会得到数值为___。如果将其以字量使用,应该用_____说明。 ?

DWORD,4,WORD PTR XYZ

(6)数据段有语句“ABC BYTE 1,2,3”,代码段指令“MOV CL, ABC+2”执行后,CL=_____。 ?

3

(7)除外设数据外的数据寻址方式有3类,分别被称为________、_________和_______。 ?

立即数寻址,寄存器寻址,存储器寻址

(8)指令“MOV EAX, OFFSET MSG”的目的操作数和源操作数分别采用______和_______寻址方式。

15

321p06vkmg5o77k3187k
领取福利

微信扫码领取福利

微信扫码分享