最新汇编语言程序设计1-4
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、字 由2个字节组成一个字,其最高位是第15位,最低位是第0位。高8位称为高
字节,低8位称为低字节。 3、双字
用2个字(4个字节)来组成一个双字,其高16位称为高字,低16位称为低字。 双字有较大的数据表示范围,它通常是为了满足数据的表示范围而选用的数 据类型,也可用于存储远指针。
第1章 预备知识
基地址寄存器
计数器
数据寄存器 源变址寄存器 源目标变址寄存器 基地址指针 栈顶指针
寄存器符号
EAX、AX、AL
EBX、BX
ECX、CX、CL
EDX、DX ESI、SI EDI、DI EBP、BP ESP、SP
主要用途 乘、除、I/O、快速的算术运算,中间结果 的缓存 在数据段中作基地址指针
循环计数器、重复操作计算器、移位操作 计数器 字的乘、除运算,间接的输入输出 存储器指针、串指令中的源操作数指针 存储器指针、串指令中的目的操作数指针 存储器指针、存取堆栈的指针 堆栈的栈顶指针
4、四字 由4个字(8个字节)组成一个四字类型,它总共有64个二进制位,有更大的数
据表示范围,但在汇编语言中很少使用该数据类型。 5、十字节
由10个字节组成一个十字节类型,它总共有80个二进制位。在汇编语言中很 少使用该数据类型。 6、字符串
字符串是由若干个字节组成的,字节数不定,通常每个字节存储一个字符。 该数据形式是汇编语言程序中经常使用的一种数据形式。
机器指令与CPU紧密相关,所以,不同种类的CPU所对应的机器 指令也就不同。
第1章 预备知识
1.2.2 进制在编程环境中的表示
程序员在用汇编语言进行程序设计时,需要知道当前环境的数据表示符号。
进制 二进制 八进制 十进制 十六进制
字符 B/Y(*) Q/O D/T
H
例子 1010B、1011B 1234Q、311Q 1234D、512D 1234H、1011H
汇编语言程序设计1-4
第1章 预Βιβλιοθήκη Baidu知识
1.1 汇编语言的由来及其特点
1.1.1 机器语言
机器指令是CPU能直接识别并执行的指令,它的表现形式是二进 制编码。
机器指令通常由操作码和操作数两部分组成: 操作码指出该指令所要完成的操作,即指令的功能; 操作数指出参与运算的对象,以及运算结果所存放的位置等。
有关寄存器的作用详细描述。
第2章 CPU资源和存储器
2.1.5 专用寄存器的作用
1、指令指针寄存器(Instruction Pointer) 指令指针IP和EIP是16位和32位的寄存器,它们分别位于16位和32位处理器之
每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器“能分可 合”的特性,灵活地处理双字、字和字节等信息。
第2章 CPU资源和存储器
2. 变址寄存器(Index Register) 寄存器SI和DI称为变址寄存器,它们可作一般的存储器指针使用。在字符串操
作指令的执行过程中,对它们有特定的要求,且具有特殊的功能。 3. 指针寄存器(Pointer Register)
第2章 CPU资源和存储器
2.1.3 通用寄存器的作用
1. 数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需
占用总线和访问存储器的时间。 4个32位寄存器:EAX、EBX、ECX和EDX 4个16位寄存器:AX、BX、CX和DX 8个8位寄存器:AH和AL、BH和BL、CH和CL、DH和DL
第2章 CPU资源和存储器
2.1.2 32位寄存器组
32位CPU把通用寄存器、指令指针和标志寄存器从16位扩充成32位,而且还 增加了2个16位的段寄存器:FS和GS。如下图所示。
32位CPU有8个32位的通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、 ESP和EBP,这些通用寄存器的低16位就是先前CPU中的AX、BX、CX、DX、 SI、DI、SP和BP。对其低16位数据的存取,不会影响高16位的数据。
第2章 CPU资源和存储器
2.1.4 段寄存器的作用
CS——代码段寄存器(Code Segment Register) DS——数据段寄存器(Data Segment Register) SS——堆栈段寄存器(Stack Segment Register) ES——附加段寄存器(Extra Segment Register) FS——386CPU增加段寄存器(Extra Segment Register) GS——386CPU增加段寄存器(Extra Segment Register)
2、汉字编码 我国在1981年5月对6000多个常用的汉字制定了交换码的国家标准,即:
GB2312-80。 该标准给定每个字符的二进制编码,即国标码。
第1章 预备知识
1.2.4 基本的数据类型
1、字节 一个字节有8位二进制组成,其最高位是第7位,最低位是第0位。 通常情况下,存储器按字节编址,读写存储器的最小信息单位就是字节。
寄存器BP和SP称为指针寄存器,它们主要用于访问堆栈内的存储单元,并且 规定: BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据 SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。
第2章 CPU资源和存储器
表2.1 通用寄存器的主要用途
寄存器名称
累加器
汇编语言中没有C语言中的规定:以ASCII码0为字符串的结束符。
第2章 CPU资源和存储器
计算机的硬件资源是用汇编语言编程所必须要了解的重要内容,因为汇编语 言允许、也需要程序员直接使用这些硬件资源,只有这样才能编写出高效的目 标代码。
2.1 寄存器组
2.1.1 16位寄存器组
4个数据寄存器:AX、BX、CX和DX,每个寄存器又可分为2个8位寄存器 2个变址寄存器:DI和SI 2个指针寄存器:SP和BP 4个段寄存器:ES、CS、SS和DS 1个标志寄存器:FLAG 1个指令指针寄存器:IP
(*) 字符Y、O和T是宏汇编MASM系统所增加的进制表示符。
第1章 预备知识
1.2.3 非数值数据的表示
1、ASCII码 在ASCII码表中,对学习本课程有用的主要信息有:
➢字符’0’~’9’是连续编码的,其ASCII码的低4位就是该字符在十进制中的数值; ➢小写字母的ASCII码比大写字母的编码大,对应字母的编码之间相差20H。
字节,低8位称为低字节。 3、双字
用2个字(4个字节)来组成一个双字,其高16位称为高字,低16位称为低字。 双字有较大的数据表示范围,它通常是为了满足数据的表示范围而选用的数 据类型,也可用于存储远指针。
第1章 预备知识
基地址寄存器
计数器
数据寄存器 源变址寄存器 源目标变址寄存器 基地址指针 栈顶指针
寄存器符号
EAX、AX、AL
EBX、BX
ECX、CX、CL
EDX、DX ESI、SI EDI、DI EBP、BP ESP、SP
主要用途 乘、除、I/O、快速的算术运算,中间结果 的缓存 在数据段中作基地址指针
循环计数器、重复操作计算器、移位操作 计数器 字的乘、除运算,间接的输入输出 存储器指针、串指令中的源操作数指针 存储器指针、串指令中的目的操作数指针 存储器指针、存取堆栈的指针 堆栈的栈顶指针
4、四字 由4个字(8个字节)组成一个四字类型,它总共有64个二进制位,有更大的数
据表示范围,但在汇编语言中很少使用该数据类型。 5、十字节
由10个字节组成一个十字节类型,它总共有80个二进制位。在汇编语言中很 少使用该数据类型。 6、字符串
字符串是由若干个字节组成的,字节数不定,通常每个字节存储一个字符。 该数据形式是汇编语言程序中经常使用的一种数据形式。
机器指令与CPU紧密相关,所以,不同种类的CPU所对应的机器 指令也就不同。
第1章 预备知识
1.2.2 进制在编程环境中的表示
程序员在用汇编语言进行程序设计时,需要知道当前环境的数据表示符号。
进制 二进制 八进制 十进制 十六进制
字符 B/Y(*) Q/O D/T
H
例子 1010B、1011B 1234Q、311Q 1234D、512D 1234H、1011H
汇编语言程序设计1-4
第1章 预Βιβλιοθήκη Baidu知识
1.1 汇编语言的由来及其特点
1.1.1 机器语言
机器指令是CPU能直接识别并执行的指令,它的表现形式是二进 制编码。
机器指令通常由操作码和操作数两部分组成: 操作码指出该指令所要完成的操作,即指令的功能; 操作数指出参与运算的对象,以及运算结果所存放的位置等。
有关寄存器的作用详细描述。
第2章 CPU资源和存储器
2.1.5 专用寄存器的作用
1、指令指针寄存器(Instruction Pointer) 指令指针IP和EIP是16位和32位的寄存器,它们分别位于16位和32位处理器之
每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器“能分可 合”的特性,灵活地处理双字、字和字节等信息。
第2章 CPU资源和存储器
2. 变址寄存器(Index Register) 寄存器SI和DI称为变址寄存器,它们可作一般的存储器指针使用。在字符串操
作指令的执行过程中,对它们有特定的要求,且具有特殊的功能。 3. 指针寄存器(Pointer Register)
第2章 CPU资源和存储器
2.1.3 通用寄存器的作用
1. 数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需
占用总线和访问存储器的时间。 4个32位寄存器:EAX、EBX、ECX和EDX 4个16位寄存器:AX、BX、CX和DX 8个8位寄存器:AH和AL、BH和BL、CH和CL、DH和DL
第2章 CPU资源和存储器
2.1.2 32位寄存器组
32位CPU把通用寄存器、指令指针和标志寄存器从16位扩充成32位,而且还 增加了2个16位的段寄存器:FS和GS。如下图所示。
32位CPU有8个32位的通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、 ESP和EBP,这些通用寄存器的低16位就是先前CPU中的AX、BX、CX、DX、 SI、DI、SP和BP。对其低16位数据的存取,不会影响高16位的数据。
第2章 CPU资源和存储器
2.1.4 段寄存器的作用
CS——代码段寄存器(Code Segment Register) DS——数据段寄存器(Data Segment Register) SS——堆栈段寄存器(Stack Segment Register) ES——附加段寄存器(Extra Segment Register) FS——386CPU增加段寄存器(Extra Segment Register) GS——386CPU增加段寄存器(Extra Segment Register)
2、汉字编码 我国在1981年5月对6000多个常用的汉字制定了交换码的国家标准,即:
GB2312-80。 该标准给定每个字符的二进制编码,即国标码。
第1章 预备知识
1.2.4 基本的数据类型
1、字节 一个字节有8位二进制组成,其最高位是第7位,最低位是第0位。 通常情况下,存储器按字节编址,读写存储器的最小信息单位就是字节。
寄存器BP和SP称为指针寄存器,它们主要用于访问堆栈内的存储单元,并且 规定: BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据 SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶。
第2章 CPU资源和存储器
表2.1 通用寄存器的主要用途
寄存器名称
累加器
汇编语言中没有C语言中的规定:以ASCII码0为字符串的结束符。
第2章 CPU资源和存储器
计算机的硬件资源是用汇编语言编程所必须要了解的重要内容,因为汇编语 言允许、也需要程序员直接使用这些硬件资源,只有这样才能编写出高效的目 标代码。
2.1 寄存器组
2.1.1 16位寄存器组
4个数据寄存器:AX、BX、CX和DX,每个寄存器又可分为2个8位寄存器 2个变址寄存器:DI和SI 2个指针寄存器:SP和BP 4个段寄存器:ES、CS、SS和DS 1个标志寄存器:FLAG 1个指令指针寄存器:IP
(*) 字符Y、O和T是宏汇编MASM系统所增加的进制表示符。
第1章 预备知识
1.2.3 非数值数据的表示
1、ASCII码 在ASCII码表中,对学习本课程有用的主要信息有:
➢字符’0’~’9’是连续编码的,其ASCII码的低4位就是该字符在十进制中的数值; ➢小写字母的ASCII码比大写字母的编码大,对应字母的编码之间相差20H。