intel32位汇编语言程序设计
- 格式:docx
- 大小:3.99 KB
- 文档页数:3
新版汇编语言程序设计习题答案(钱晓捷主编)新版汇编语言程序设计习题答案(钱晓捷主编)第一章汇编语言基础知识1.1、简述计算机系统的硬件组成及各部分作用1.2、明确下列概念或符号:主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB1.3、什么是汇编语言源程序、汇编程序、目标程序?1.4、汇编语言与高级语言相比有什么优缺点?1.5、将下列十六进制数转换为二进制和十进制表示(1)FFH (2)0H (3)5EH (4)EFH(5)2EH (6)10H (7)1FH (8)ABH1.6、将下列十进制数转换为BCD码表示(1)12 (2)24 (3)68 (4)127(5)128 (6)255 (7)1234 (8)24581.7、将下列BCD码转换为十进制数(1)10010001 (2)10001001 (3)00110110 (4)10010000(5)00001000 (6)10010111 (7)10000001 (8)000000101.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示(1)0 (2)-127 (3)127 (4)-57(5)126 (6)-126 (7)-128 (8)681.9、完成下列二进制数的运算(1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001(5)1011 ∧~1011 (8)1011 ⊕ 1001 1001(6)1011 ∨1001(7)1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符?1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符?1.12、简述Intel 80x86系列微处理器在指令集方面的发展。
汇编语言基础《汇编语言程序设计》第01章在线测试《汇编语言程序设计》第01章在线测试剩余时间:49:50答题须知:1、本卷满分20分。
2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。
第一题、单项选择题(每题1分,5道题共5分)1、一个字节的二进制位数是____位。
A、4B、8C、16D、322、微机中每个存储单元具有一个地址,其中存放一个____量。
A、比特(1位)B、字节(8位)C、字(16位)D、双字(32位)3、设段地址为5788H,偏移地址为94H,该字节的物理地址_____。
A、57974HB、5883HC、58ECHD、57914H4、汇编语言源程序中,每个语句由4项组成,不影响语句功能的是_____。
A、名字项B、助记符(操作码)C、操作数D、注释5、下列标号不合法的是_____。
A、WANGB、MOVC、F4D、ABC3第二题、多项选择题(每题2分,5道题共10分)1、汇编语言的优点包括_____。
A、直接有效地控制硬件B、生成的代码序列短小C、运行速度快D、编程容易E、便于移植2、8086段寄存器有_______。
A、IPB、DSC、CSD、ESE、SS3、使用MASM 6.x版本的“ML /Fl eg101.asm”命令,如果源程序eg101.asm没有语法错误,则将生成_________文件。
A、目标代码文件B、可执行文件C、列表文件D、调试文件E、库文件4、汇编语言中,______可以作为有效的名字,如标号、变量名等。
A、0fffhB、var00C、loop1D、testE、add5、汇编语言中,程序员不能将______作为用户标识符。
A、DSB、byteC、againD、callE、SS第三题、判断题(每题1分,5道题共5分)1、8086是Intel公司的第一个16位结构的微处理器芯片。
汇编语言CMP ax bx对标志位的影响,,特别是cfzf 的影响什么时候cf = 0,或cf = 1 ,JA 的转移条件 CF = 0 , ZF = 0 ,意思是若 > 则转移是ax 》bx 还是 bx》 ax,,为什么???这个指令运行时是分两步执行1、做减法ax-bx2、根据结果设标志值ax-bx大于0 符号位cf=0 结果零位zf=0ax-bx等于0 cf=0 zf=1ax-bx小于0 cf=1 zf=0所以JA是在 ax大于bx时转移汇编语言中JNS的意思,详细解释一下!谢谢这条指令用汉语解释就是:如果符号位S不为1,就跳转。
这条指令是相对跳转,指令的操作数是向前或向后的相对字节数,当然,如果用汇编语言书写,可以直接写上转移的目标地址。
为什么对非零操作数执行NEG总是设置进位标志???NEG指令是一条单操作数的减法运算指令。
在这条指令中,被减数是0,减数用指令中的操作数给出。
指令 NEG xx 的运算是:(xx)<---- 0 - xx在减法运算中,进位标志CF用来表示运算的最高位向前的借位。
只有xx为0的时候,减法才不会有向更高位借位。
所以,只要操作数非零,就必定要向前借位,CF必定会在运算后被设为1汇编语言lea是什么意思?LEA是取变量的地址LEA另一用途就是代替乘法运算,比如LEA EAX,[EAX*4+EAX]就要比用MUL去实现EAX*5来得快捷汇编语言LEA ,OFFSET, SEG功能有什么不同?LEA BX,LISTMOV BX,OFFSET LIST可以看出,LEA和OFFSET这两条指令在功能上是相同的,BX寄存器都可得到符号地址LIST的值,而且此时MOV指令的执行速度会比LEA指令更快。
但是,OF FSET只能与简单的符号地址相连,而不能和诸如LIST[SI]或[SI]等复杂操作数相连。
因此,LEA指令在取得访问变量的工具方面是很有用的。
OFFSET是将数值回送变量或标号的偏移地址值LEA是将数值回送变量或标号的有效地址值SEG, 汇编程序将回送变量或标号的段地址值。
第1章汇编语言基础知识汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效地应用汇编语言对其编程,因此,本章对硬件系统结构的问题进行部分探讨,首先介绍了计算机的基本结构、Intel公司微处理器的发展、计算机的语言以及汇编语言的特点,在此基础上重点介绍寄存器、内存组织等汇编语言所涉及到的基本知识。
1.1微型计算机概述微型计算机由中央处理器(Central Processing Unit,CPU)、存储器、输入输出接口电路和总线构成。
CPU如同微型计算机的心脏,它的性能决定了整个微型计算机的各项关键指标。
存储器包括随机存储器(Random Access Memory,RAM)和只读存储器(Read Only Memory,ROM)。
输入输出接口电路用来连接外部设备和微型计算机。
总线为CPU和其他部件之间提供数据、地址和控制信息的传输通道。
如图1.1所示为微型计算机的基本结构。
图1.1微型计算机基本结构特别要提到的是微型计算机的总线结构,它使系统中各功能部件之间的相互关系变为各个部件面向总线的单一关系。
一个部件只要符合总线结构标准,就可以连接到采用这种总线结构的系统中,使系统功能得到扩展。
数据总线用来在CPU与内存或其他部件之间进行数据传送。
它是双向的,数据总线的位宽决定了CPU和外界的数据传送速度,8位数据总线一次可传送一个8位二进制数据(即一个字节),16位数据总线一次可传送两个字节。
在微型计算机中,数据的含义是广义的,数据总线上传送的不一定是真正的数据,而可能是指令代码、状态量或控制量。
汇编语言程序设计2地址总线专门用来传送地址信息,它是单向的,地址总线的位数决定了CPU可以直接寻址的内存范围。
如CPU的地址总线的宽度为N,则CPU最多可以寻找2N个内存单元。
控制总线用来传输控制信号,其中包括CPU送往存储器和输入输出接口电路的控制信号,如读信号、写信号和中断响应信号等;也包括其他部件送到CPU的信号,如时钟信号、中断请求信号和准备就绪信号等。
传说中的Intel 64/IA-32软件开发人员手册共分3卷。
卷一:基本架构Intel 64/IA-32处理器基本架构+编程环境卷二:指令集参考Intel 64/IA-32处理器指令集+操作码结构(适合应用程序员、操作系统或底层程序员)卷三:系统编程指南操作系统支持环境(适合操作系统及BIOS设计师)本手册涵盖了所有的Intel处理器。
简介:第1章:关于本手册。
介绍了Intel开发手册的符号约定和Intel公司提供的相关手册与文档,供感兴趣的程序员和硬件设计师进一步参考。
第2章:Intel 64/IA-32架构(★★★)介绍了Intel 64/IA-32架构和基于这些架构的Intel处理器,简要介绍了这些处理器共有的特征及Intel 64/IA-32架构的发展历史。
第3章:基本运行环境(★★★★)介绍了内存组织模型与应用程序使用的寄存器集。
第4章:数据类型(★★★★)描述了处理器识别的数据类型和寻址方式,简要介绍了实数和浮点数格式以及浮点异常。
第5章:指令集汇总(★★★★★)列出了所有Intel 64/IA-32架构的指令,并根据指令技术类别进行了分组。
第6章:过程调用、中断和异常(★★★★)描述了过程栈、调用、中断、异常机制。
第7章:通用指令编程(★★★★)描述了装载与存储、程序控制、运算及字符串指令对基本数据类型、通用寄存器和段寄存器的操作,同时也描述了保护模式下的系统指令。
第8章:x87浮点单元编程(★★★)描述了包括浮点寄存器和数据类型在内的x87浮点单元(FPU)、浮点指令集和处理器浮点异常的产生条件。
第9章:Intel MMX技术编程(★★)描述了包括MMX寄存器和数据类型在内的Intel MMX技术和MMX指令集。
第10章:SIMD扩展(SSE)编程(★)略第11章:SIMD扩展2(SSE2)编程(★)略第12章:SIMD扩展3(SSE3)编程(★)略第13章:输入/输出(★★★★)描述了处理器的I/O机制,包括I/O端口寻址、I/O指令及I/O保护机制。
汇编语言程序设计教程(第3版)习题参考答案第1章汇编语言基础知识思考与练习1.计算机系统分哪几个层次?简述计算机系统的硬件结构。
1)数字逻辑层2) 微体系结构层3) 指令系统层4) 操作系统层5) 汇编语言层6) 高级语言层7) 应用层硬件系统是指构成计算机系统的物理实体或物理装置。
它由控制器、运算器、存储器、输入设备和输出设备等部件构成。
2.简述用汇编语言进行程序设计的必要性。
1)程序要具有较快的执行时间,或者只能占用较小的存储容量。
例如,操作系统的核心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。
2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。
例如,I/O接口电路的初始化程序段,外部设备的低层驱动程序等。
3)大型软件需要提高性能、优化处理的部分。
例如计算机系统频繁调用的子程序、动态连接库等。
4)没有合适的高级语言或只能采用汇编语言的时候。
例如,开发最新的处理器程序时,暂时没有支持新指令的编译程序。
5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等。
3.汉字编码主要分哪几类?每类的功能如何?汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。
1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用西文标准键盘上的字母数字串表示汉字的编码。
目前,汉字输入编码方法主要有三种:数字编码、拼音编码和字形编码。
2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标码。
无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标识每个汉字。
3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息处理系统内部存储、处理、传输汉字用的编码。
4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。
4.计算机的字长是怎么定义的,试举例说明。
汇编语言程序设计教程(第3版卜艳萍)参考答案汇编语言程序设计教程(第3版)习题参考答案第1章汇编语言基础知识思考与练习1. 计算机系统分哪几个层次?简述计算机系统的硬件结构。
1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层硬件系统是指构成计算机系统的物理实体或物理装置。
它由控制器、运算器、存储器、输入设备和输出设备等部件构成。
2. 简述用汇编语言进行程序设计的必要性。
1) 程序要具有较快的执行时间,或者只能占用较小的存储容量。
例如,操作系统的核心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。
2) 程序与计算机硬件密切相关,程序要直接、有效地控制硬件。
例如,I/O接口电路的初始化程序段,外部设备的低层驱动程序等。
3) 大型软件需要提高性能、优化处理的部分。
例如计算机系统频繁调用的子程序、动态连接库等。
4) 没有合适的高级语言或只能采用汇编语言的时候。
例如,开发最新的处理器程序时,暂时没有支持新指令的编译程序。
5) 汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等。
3. 汉字编码主要分哪几类?每类的功能如何?汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。
1) 为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用西文标准键盘上的字母数字串表示汉字的编码。
目前,汉字输入编码方法主要有三种:数字编码、拼音编码和字形编码。
2) 汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标码。
无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标识每个汉字。
3) 汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息处理系统内部存储、处理、传输汉字用的编码。
4) 字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。
intel32位汇编语言程序设计
Intel 32位汇编语言程序设计
一、概述
Intel 32位汇编语言是一种低级语言,用于编写计算机程序。
它是针对Intel x86系列处理器的指令集架构而设计的。
本文将介绍Intel 32位汇编语言程序设计的基本概念、语法和应用。
二、语言特点
1. 低级语言:汇编语言是一种低级语言,直接操作计算机硬件。
相比高级语言,它更接近机器语言,能够更精确地控制计算机的执行。
2. 面向硬件:汇编语言直接操作寄存器、内存和指令,能够充分发挥计算机硬件的性能,对于性能要求较高的应用场景有着独特的优势。
3. 强大的控制能力:汇编语言允许程序员直接控制程序的执行流程,包括条件跳转、循环和子程序调用等。
三、语法结构
1. 指令:汇编语言的基本单位是指令,每条指令都对应着一条机器指令。
指令由操作码和操作数组成,用于执行特定的操作。
2. 寄存器:寄存器是汇编语言中的重要概念,用于存储数据和执行运算。
x86架构提供了多个通用寄存器,如EAX、EBX等,以及一些特殊用途的寄存器,如ESP、EIP等。
3. 内存:汇编语言通过内存来读写数据。
内存地址可以使用直接地
址、间接寻址、寄存器间接寻址等方式进行访问。
4. 标志位:标志位用于记录程序执行过程中的状态信息,如进位标志、零标志等。
程序可以根据标志位的值来进行条件跳转或判断。
四、程序设计
1. 输入和输出:汇编语言程序可以通过中断或者直接操作设备端口来进行输入和输出操作。
例如,可以通过INT 21H中断来进行字符输入输出,或者通过IN和OUT指令直接操作设备端口。
2. 控制结构:汇编语言提供了条件跳转和循环等控制结构,用于实现程序的逻辑控制。
通过比较指令和条件跳转指令,可以实现条件判断和分支执行。
通过循环指令,可以实现重复执行某段代码的功能。
3. 子程序调用:汇编语言支持子程序调用,可以将一段逻辑进行封装,实现代码的复用。
通过CALL和RET指令,可以实现子程序的调用和返回。
4. 数据处理:汇编语言提供了丰富的数据处理指令,包括算术运算、逻辑运算、移位和旋转等。
程序可以通过这些指令对数据进行处理和运算。
五、应用领域
1. 系统编程:汇编语言在系统编程中应用广泛。
通过汇编语言,可以直接操作硬件设备,实现系统底层功能,如驱动程序和操作系统内核等。
2. 嵌入式开发:汇编语言在嵌入式系统开发中有着重要地位。
由于嵌入式系统对性能和资源的要求较高,使用汇编语言可以充分发挥硬件的潜力,提高系统的性能和效率。
3. 反汇编和调试:汇编语言在反汇编和调试过程中发挥着重要作用。
通过反汇编,可以将机器码转换为汇编代码,从而分析程序的执行过程。
通过调试器,可以对程序进行逐步调试,查找错误和优化性能。
六、总结
通过本文对Intel 32位汇编语言程序设计的介绍,我们了解了汇编语言的基本概念、语法和应用。
汇编语言作为一种低级语言,能够直接操作计算机硬件,具有强大的控制能力和性能优势。
在系统编程、嵌入式开发和调试等领域有着广泛的应用。
掌握汇编语言的程序设计技巧,对于理解计算机底层原理和优化程序性能具有重要意义。