汇编语言程序设计-第1章-汇编语言基础知识课件.ppt
汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学第第1 1章章 汇编语言汇编语言基础知识基础知识5/25/20231第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学1.1 1.1 汇编语言汇编语言概述概述1.2 进位计数制及其转换1.3 计算机中数和字符的表示方法第第1 1章章 汇编语言汇编语言基础知识基础知识5/25/20232第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学 自然语言是具有特定语音和语法等规范的、用于人类表自然语言是具有特定语音和语法等规范的、用于人类表达思想并实现相互交流的工具。人与人之间只有使用同一种达思想并实现相互交流的工具。人与人之间只有使用同一种语言才能进行直接交流,否则就必须通过翻译。要使计算机语言才能进行直接交流,否则就必须通过翻译。要使计算机为人类服务,人们就必须借助某种工具,告诉计算机为人类服务,人们就必须借助某种工具,告诉计算机“做什做什么么”甚至甚至“怎么做怎么做”,这种工具就是程序设计语言。,这种工具就是程序设计语言。程程序序设设计计语语言言通通常常分分为为三三类类:机机器器语语言言、汇汇编编语语言言和和高高级语言。而前两种语言与机器密切相关,统称为低级语言。级语言。而前两种语言与机器密切相关,统称为低级语言。1.1.1 1.1.1 汇编语言汇编语言基本概念基本概念1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述5/25/20233第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学 计算机语言的发展计算机语言的发展 机器语言机器语言FORTRANFORTRANBASICBASICCOBOLCOBOLPASCALPASCALC/C+C/C+JAVAJAVA.汇编语言汇编语言高级语言高级语言1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述1.1.1 1.1.1 汇编语言汇编语言基本概念基本概念5/25/20234第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学 计算机能够直接识别的数据是由二进制数计算机能够直接识别的数据是由二进制数计算机能够直接识别的数据是由二进制数计算机能够直接识别的数据是由二进制数0 0 0 0和和和和1 1 1 1组成组成组成组成的代码。机器指令就是用二进制代码组成的指令的代码。机器指令就是用二进制代码组成的指令的代码。机器指令就是用二进制代码组成的指令的代码。机器指令就是用二进制代码组成的指令,一条,一条机器指令控制计算机完成一个基本操作。机器指令控制计算机完成一个基本操作。用机器语言编写的程序是计算机惟一能够直接识别并执用机器语言编写的程序是计算机惟一能够直接识别并执用机器语言编写的程序是计算机惟一能够直接识别并执用机器语言编写的程序是计算机惟一能够直接识别并执行的程序行的程序行的程序行的程序,而用其他语言编写的程序必须经过翻译才能,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称为变换成机器语言程序,所以,机器语言程序被称为目标目标程序程序。80868086机器语言片段机器语言片段机器语言片段机器语言片段 B0 0A 04 14机器语言机器语言1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述1.1.1 1.1.1 汇编语言汇编语言基本概念基本概念5/25/20235第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学机器语言程序的优缺点优点:计算机能直接认识、执行。程序紧凑,占用内存空间少,执行速度快。能充分发挥计算机的硬件性能。缺点:机器语言难记,程序难编,易错,调试困难(完全由0、1代码串组成)机器语言通用性差(面向硬件,不同硬件结构,指令代码不同)5/25/20236第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学 为了克服机器语言的缺点,人们采用为了克服机器语言的缺点,人们采用助记符助记符助记符助记符表示机器指令的操表示机器指令的操作码作码,用用变量变量变量变量代替操作数的存放地址等,这样就形成了汇编语言。代替操作数的存放地址等,这样就形成了汇编语言。所以所以所以所以汇编语言是一种用符号书写的、基本操作与机器指令相对应汇编语言是一种用符号书写的、基本操作与机器指令相对应汇编语言是一种用符号书写的、基本操作与机器指令相对应汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算机语言(机器语言的符号化)。的、并遵循一定语法规则的计算机语言(机器语言的符号化)。的、并遵循一定语法规则的计算机语言(机器语言的符号化)。的、并遵循一定语法规则的计算机语言(机器语言的符号化)。用汇编语言编写的程序称为汇编源程序用汇编语言编写的程序称为汇编源程序用汇编语言编写的程序称为汇编源程序用汇编语言编写的程序称为汇编源程序。汇编语言是一种符号语言,比机器语言容易理解和掌握,也汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,容易调试和维护。但是,汇编语言源程序要翻译成机器语言程序汇编语言源程序要翻译成机器语言程序汇编语言源程序要翻译成机器语言程序汇编语言源程序要翻译成机器语言程序才可以由计算机执行才可以由计算机执行才可以由计算机执行才可以由计算机执行。这个翻译的过程称为。这个翻译的过程称为“汇编汇编汇编汇编”,这种,这种把汇把汇把汇把汇编源程序翻译成目标程序的语言加工程序称为编源程序翻译成目标程序的语言加工程序称为编源程序翻译成目标程序的语言加工程序称为编源程序翻译成目标程序的语言加工程序称为汇编程序汇编程序汇编程序汇编程序。汇编语言汇编语言1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述1.1.1 1.1.1 汇编语言汇编语言基本概念基本概念5/25/20237第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学例如,在例如,在80868086机器下,分别用汇编语言和机器语言计算机器下,分别用汇编语言和机器语言计算10+2010+20的程序代码如下:的程序代码如下:汇编语言汇编语言汇编语言汇编语言 机器语言机器语言机器语言机器语言 MOV ALMOV AL,1010 B0 0A ADD ALADD AL,2020 04 14显然,使用汇编语言编写的程序要比机器语言更容易理显然,使用汇编语言编写的程序要比机器语言更容易理解。解。1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述1.1.1 1.1.1 汇编语言汇编语言基本概念基本概念5/25/20238第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学 汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。人们研制出了高级程序设计语言。高级程序设计语言接近高级程序设计语言接近高级程序设计语言接近高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用于人类自然语言的语法习惯,与计算机硬件无关,易被用于人类自然语言的语法习惯,与计算机硬件无关,易被用于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用户掌握和使用户掌握和使用户掌握和使用。目前广泛应用的高级语言有多种,如。目前广泛应用的高级语言有多种,如BASICBASICBASICBASIC、FORTRANFORTRANFORTRANFORTRAN、PASCALPASCALPASCALPASCAL、C C C C、C+C+C+C+等等。等等。高级语言高级语言1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述1.1.1 1.1.1 汇编语言汇编语言基本概念基本概念5/25/20239第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学 面向机器的低级语言面向机器的低级语言面向机器的低级语言面向机器的低级语言,通常是为特定的计算机或计算,通常是为特定的计算机或计算机系列机系列专门设计专门设计专门设计专门设计的。的。保持了机器语言的优点保持了机器语言的优点保持了机器语言的优点保持了机器语言的优点,具有,具有直接和简捷直接和简捷直接和简捷直接和简捷的特点。的特点。可有效地访问、控制计算机的各种硬件设备可有效地访问、控制计算机的各种硬件设备可有效地访问、控制计算机的各种硬件设备可有效地访问、控制计算机的各种硬件设备,如磁如磁盘、存储器、盘、存储器、CPUCPU、I/OI/O端口等。端口等。目标代码简短,占用内存少,执行速度快目标代码简短,占用内存少,执行速度快目标代码简短,占用内存少,执行速度快目标代码简短,占用内存少,执行速度快,是是高效高效高效高效的程序设计语言。的程序设计语言。经常与高级语言配合使用经常与高级语言配合使用经常与高级语言配合使用经常与高级语言配合使用,应用十分广泛。,应用十分广泛。1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述1.1.2 1.1.2 汇编语言的特点汇编语言的特点 5/25/202310第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学#include stdafx.h#include stdio.h int main(int argc,char*argv)int a,b,c;a=1;b=2;c=a+b;printf(“c=%dn,c);return 0;编程实现编程实现编程实现编程实现 c=a+bc=a+bc=a+bc=a+b,并在屏幕上显示出结果。并在屏幕上显示出结果。并在屏幕上显示出结果。并在屏幕上显示出结果。编译后的目标文编译后的目标文编译后的目标文编译后的目标文件达到件达到件达到件达到3.59KB3.59KB3.59KB3.59KB1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述C C 语言实现语言实现1.1.2 1.1.2 汇编语言的特点汇编语言的特点 5/25/202311第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学汇编汇编 语言实现语言实现汇编后的目汇编后的目汇编后的目汇编后的目标文件只有标文件只有标文件只有标文件只有208208208208字节字节字节字节data segmentdata segmenta db?a db?b db?b db?c db?c db?string db c=$string db c=$data endsdata endscode segmentcode segmentmain proc farmain proc far assume assume cs:codecs:code,ds:datads:data,es:dataes:datastart:start:push push dsds sub ax,ax sub ax,ax push ax push ax movmov ax,data ax,data movmov ds,axds,ax movmov es,axes,ax movmov a,1 a,1 movmov b,2 b,2 movmov al,a al,a add al,b add al,b movmov c,al c,al lea lea dx,stringdx,string movmov ah,09 ah,09 intint 21h 21h add c,30hadd c,30h movmov dl,c dl,c movmov ah,2 ah,2 intint 21h 21h movmov dl,0ah dl,0ah intint 21h 21h movmov dl,0dh dl,0dh intint 21h 21h ret retmain main endpendpcode endscode ends end start end start1.1 1.1 1.1 1.1 汇编语言汇编语言汇编语言汇编语言概述概述概述概述 编程实现编程实现编程实现编程实现 c=a+bc=a+bc=a+bc=a+b,并在屏幕上显示出结果。并在屏幕上显示出结果。并在屏幕上显示出结果。并在屏幕上显示出结果。1.1.2 1.1.2 汇编语言的特点汇编语言的特点 5/25/202312第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学汇编语言的应用汇编语言的应用系统程序、效率代码、系统程序、效率代码、I/OI/O驱动程序驱动程序 70%70%以上的系统软件是用汇编语言编写的。以上的系统软件是用汇编语言编写的。某些快速处理、位处理、访问硬件设备等某些快速处理、位处理、访问硬件设备等 高效程序是用汇编语言编写的。高效程序是用汇编语言编写的。高级绘图程序、视频游戏程序一般是用汇高级绘图程序、视频游戏程序一般是用汇 编语言编写的编语言编写的。5/25/202313第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学汇编语言的意义(汇编语言的意义(汇编语言机器的原动力)速度:对于同一个问题,用汇编语言设计出的程序能达到“运行速度最快”。空间:对于同一个问题,用汇编语言设计出的程序能达到“占用空间最少”。功能:汇编语言可以实现高级语言难以胜任甚至不能完成的任务。知识:学习汇编语言,有助于对计算机系统的理解、写出更好的程序。要想用好汇编语言,必须要对硬件原理有所了解,尤其要掌握对应硬件的编程模型。5/25/202314第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学教师建议教师建议目标:目标:了解汇编语言的特性及其编程技术,了解汇编语言的特性及其编程技术,建立起建立起“机器机器”和和“程序程序”、“空间空间”和和“时间时间”的概念。的概念。建议:建议:充分注意充分注意“汇编汇编”课实践性强的特点,课实践性强的特点,多读程序多读程序,多写程序多写程序,多上机调试程序多上机调试程序,熟悉熟悉PCPC机的编程结构,机的编程结构,掌握汇编语言及其程序设计的基本概念、方法和技巧。掌握汇编语言及其程序设计的基本概念、方法和技巧。5/25/202315第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学参考资料参考资料1.1.沈美明等编著沈美明等编著 ,IBM PC,IBM PC 汇编语言程序设计汇编语言程序设计,清华大学出版社清华大学出版社.2.2.杨季文等编著杨季文等编著 .80X86.80X86汇编语言程序设计教程,汇编语言程序设计教程,清华大学出版社清华大学出版社.3.3.徐建民等编著,汇编语言程序设计,电子工业徐建民等编著,汇编语言程序设计,电子工业出版社出版社.5/25/202316第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学教学日历:教学日历:4040课时课时+16+16上机上机第一章第一章 汇编语言汇编语言 数制数制 数制之间的转换数制之间的转换 数和字符的表示数和字符的表示 运算运算第二章第二章 计算机组织计算机组织 CPU CPU 存储器存储器 外部设备外部设备第三章第三章 寻址方式寻址方式 指令系统指令系统 BIOSBIOS和和DOSDOS调用调用 第四章第四章 伪操作伪操作 完整段定义格式完整段定义格式 上机过程上机过程第五章第五章 基本程序设计基本程序设计 第六章第六章 输入输入/输出程序设计输出程序设计第七章第七章 循环程序设计循环程序设计 第八章第八章 分支程序设计分支程序设计 第九章第九章 子程序结构子程序结构 第十一章第十一章 高级汇编语言技术高级汇编语言技术5/25/202317第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学建议和要求:1.学习方法(加强读、写程序的训练,注意与C语言的比较)2.作业和实验3.成绩=平时(30%)+考试(70%)4.答疑5.Email:5/25/202318第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学1.1 汇编语言概述1.2 1.2 进位计数制及其转换进位计数制及其转换1.3 计算机中数和字符的表示方法第第1 1章章 汇编语言汇编语言基础知识基础知识5/25/202319第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学 计算机内部的信息分为两大类:计算机内部的信息分为两大类:控制信息和数据信息控制信息和数据信息控制信息和数据信息控制信息和数据信息。控制。控制信息是一系列的控制命令,用于指挥计算机如何操作;数据信息信息是一系列的控制命令,用于指挥计算机如何操作;数据信息是计算机操作的对象,一般又可分为数值数据和非数值数据。是计算机操作的对象,一般又可分为数值数据和非数值数据。对对计计算算机机而而言言,不不论论是是控控制制命命令令还还是是数数据据,它它们们都都要要用用“0 0”和和“1 1”两两个个基基本本符符号号即即基基2 2码码来来编编码码表表示示,这这是是由由于于以以下下三个原因:三个原因:(1 1 1 1)基基基基2 2 2 2码码码码在在在在物物物物理理理理上上上上最最最最容容容容易易易易实实实实现现现现。例例如如,用用高高、低低两两个个电电位位表表示示“1 1”和和“0 0”,或或用用脉脉冲冲的的有有、无无表表示示“1 1”和和“0 0”等等等等,可靠性都较高。可靠性都较高。(2 2 2 2)基)基)基)基2 2 2 2码用来表示二进制数,其编码及加减运算规则简单。码用来表示二进制数,其编码及加减运算规则简单。码用来表示二进制数,其编码及加减运算规则简单。码用来表示二进制数,其编码及加减运算规则简单。(3 3 3 3)基基基基2 2 2 2码码码码的的的的两两两两个个个个符符符符号号号号“1 1 1 1”和和和和“0 0 0 0”正正正正好好好好与与与与逻逻逻逻辑辑辑辑数数数数据据据据“真真真真”与与与与“假假假假”相对应,为计算机实现逻辑运算带来了方便。相对应,为计算机实现逻辑运算带来了方便。相对应,为计算机实现逻辑运算带来了方便。相对应,为计算机实现逻辑运算带来了方便。因此,不论是什么信息,在输入计算机内部时,都必须用基因此,不论是什么信息,在输入计算机内部时,都必须用基2 2码编码表示,以方便存储、传送和处理。码编码表示,以方便存储、传送和处理。1.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换5/25/202320第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学预预 备备 知知 识识存储容量存储容量1K =1024B =21K =1024B =210 10 (KiloKilo)1M=1024K =21M=1024K =22020 (MegaMega)1G =1024M=21G =1024M=230 30 (GigaGiga)1 1个二进制位:个二进制位:bit bit (比特)比特)8 8个二进制位:个二进制位:Byte Byte (字节)字节)1 1Byte=8bitByte=8bit2 2个字节:个字节:Word Word(字)字)1 1Word=2Byte=16bitWord=2Byte=16bit1.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换5/25/202321第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学1.2.1 1.2.1 数与数制数与数制 1 1 1 1数的表示数的表示数的表示数的表示 数数 制制 基基 数数 数数 码码 二进制二进制二进制二进制 BinaryBinaryBinaryBinary 2 0,1 2 0,1 八进制八进制八进制八进制 Octal Octal Octal Octal 8 0,1,2,3,4,5,6,7 8 0,1,2,3,4,5,6,7 十进制十进制十进制十进制 DecimalDecimalDecimalDecimal 10 0,1,2,3,4,5,6,7,8,9 10 0,1,2,3,4,5,6,7,8,9 十六进制十六进制十六进制十六进制 HexadecimalHexadecimalHexadecimalHexadecimal 16 0,1,2,3,4,5,6,7,8,9,16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F A,B,C,D,E,F二进制:二进制:二进制:二进制:基数为基数为基数为基数为2 2 2 2,逢二进一,逢二进一,逢二进一,逢二进一 11012 =12 3 +12 2 +12 0 =1310十六进制:基数为十六进制:基数为十六进制:基数为十六进制:基数为16161616,逢十六进一,逢十六进一,逢十六进一,逢十六进一 1001,0001,1000,0111 9 1 8 7 =9 16 3 +1 16 2 +8 16 1 +7 16 01.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换5/25/202322第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学 任何进制的数都可用如下方法表示任何进制的数都可用如下方法表示任何进制的数都可用如下方法表示任何进制的数都可用如下方法表示:NN =K=Ki i *r ri i 其中:其中:K K K Ki i i i 是任一个数码;是任一个数码;是任一个数码;是任一个数码;r r r ri i i i是各位对应的权是各位对应的权是各位对应的权是各位对应的权 r r r r 是基数是基数是基数是基数ni=-m1.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换1.2.1 1.2.1 数与数制数与数制 5/25/202323第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学2 2 2 2计数制的书写规则计数制的书写规则计数制的书写规则计数制的书写规则 为了区别不同的计数制,可采用下列两种方法:为了区别不同的计数制,可采用下列两种方法:(1 1 1 1)在在在在数数数数字字字字后后后后面面面面加加加加写写写写相相相相应应应应的的的的英英英英文文文文字字字字母母母母作作作作为为为为标标标标识识识识,英英英英文文文文字字字字母母母母不分大小写。不分大小写。不分大小写。不分大小写。本书约定采用大写字母形式。本书约定采用大写字母形式。如:如:1100011B1100011B。B B后缀表示为二进制数(后缀表示为二进制数(BinaryBinary)。)。2357O2357O。OO后后缀缀表表示示为为八八进进制制数数(OctalOctal)。由由于于英英文文字字母母OO容易和零误会,所以也可以用容易和零误会,所以也可以用QQ来表示八进制。来表示八进制。1000D1000D。D D后缀表示为十进制数(后缀表示为十进制数(DecimalDecimal)。)。3AB5H3AB5H。H H后后缀缀表表示示为为十十六六进进制制数数(HexadecimalHexadecimal)。如如果果记记数数符符号号a a,b b,c c,d d,e e,f f打打头头,头头部部应应加加0 0,如如0A8F5H0A8F5H;记记数符号数符号 a a,b b,c c,d d,e e,f f不区别大小写,与不区别大小写,与ABCDEFABCDEF等效。等效。缺省后缀时,一般约定为十进制数。缺省后缀时,一般约定为十进制数。(2 2 2 2)在括号外面加数字下标。)在括号外面加数字下标。)在括号外面加数字下标。)在括号外面加数字下标。如:(如:(10111011)2 2 表示二进制数的表示二进制数的10111011 (2DF22DF2)1616表示十六进制数的表示十六进制数的2DF2 2DF2 1.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换1.2.1 1.2.1 数与数制数与数制 5/25/202324第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 1 1 1 1十进制数与二进制数之间的转换十进制数与二进制数之间的转换十进制数与二进制数之间的转换十进制数与二进制数之间的转换(1 1 1 1)十进制整数转换成二进制整数)十进制整数转换成二进制整数)十进制整数转换成二进制整数)十进制整数转换成二进制整数方法:除方法:除2 2取余法取余法注意:第一次得到的余数为二进制数的最低位,最后得到的注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。余数为二进制数的最高位。(2 2 2 2)十进制小数转换成二进制小数)十进制小数转换成二进制小数)十进制小数转换成二进制小数)十进制小数转换成二进制小数方法:乘方法:乘2 2取整法取整法注意:最后将每次得到的整数部分(必定是注意:最后将每次得到的整数部分(必定是0 0或或1 1)按先后顺)按先后顺序从左到右排列即得到所对应二进制小数。序从左到右排列即得到所对应二进制小数。1.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换5/25/202325第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学例例例例:117.8125D=1110101.1101B1110101.1101B 2 117 2 58 1 2 29 0 2 14 1 2 7 0 2 3 1 2 1 1 0 10.8125 2 1 1.625 1 2 1 1.25 1 2 0.5 0 2 1 1.0 1(3 3 3 3)一般的十进制数转换成二进制数)一般的十进制数转换成二进制数)一般的十进制数转换成二进制数)一般的十进制数转换成二进制数为了将一个既有整数又有小数部分的十进制数转换成二进制为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,然后再组合数,可以将其整数部分和小数部分分别进行转换,然后再组合起来。起来。1.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 5/25/202326第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学(4 4 4 4)二进制数转换十进制数)二进制数转换十进制数)二进制数转换十进制数)二进制数转换十进制数方法:按位权展开后相加。方法:按位权展开后相加。注意:用其各位所对应的系数,按注意:用其各位所对应的系数,按“位权展开求和位权展开求和”的方法就的方法就可以得到,其基数为可以得到,其基数为2 2。例例1.4 1.4 将将(101.11)2(101.11)2转换成十进制数。其过程如下:转换成十进制数。其过程如下:(101.11)(101.11)2 2=12=122 2+02+021 1+12+120 0+12+12-1-1+12+12-2-2=4+0+1+0.5+0.25=4+0+1+0.5+0.25=(5.755.75)10101.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 5/25/202327第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学(1 1 1 1)十进制整数转换成八进制整数)十进制整数转换成八进制整数)十进制整数转换成八进制整数)十进制整数转换成八进制整数方法:除方法:除8 8取余法取余法注意:采用基数注意:采用基数8 8连续去除该十进制整数,直至商等于连续去除该十进制整数,直至商等于“0”0”为为止,然后逆序排列所得到的余数。止,然后逆序排列所得到的余数。(2 2 2 2)十进制小数转换成八进制小数)十进制小数转换成八进制小数)十进制小数转换成八进制小数)十进制小数转换成八进制小数方法:乘方法:乘8 8取整法取整法注意:连续用基数注意:连续用基数8 8去乘以该十进制小数,直至乘积的小数部去乘以该十进制小数,直至乘积的小数部分等于分等于“0”0”,然后顺序排列每次乘积的整数部分。,然后顺序排列每次乘积的整数部分。(3 3 3 3)八进制数转换成十进制数)八进制数转换成十进制数)八进制数转换成十进制数)八进制数转换成十进制数方法:按位权展开后相加。方法:按位权展开后相加。用其各位所对应的系数,按用其各位所对应的系数,按“位权展开求和位权展开求和”的方法就可以得的方法就可以得到,其基数为到,其基数为8 8。1.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换2.2.2.2.十进制与八进制之间的转换十进制与八进制之间的转换十进制与八进制之间的转换十进制与八进制之间的转换1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 5/25/202328第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学(1 1 1 1)十进制整数转换成十六进制整数)十进制整数转换成十六进制整数)十进制整数转换成十六进制整数)十进制整数转换成十六进制整数方法:除方法:除1616取余法取余法注意:采用基数注意:采用基数1616连续去除该十进制整数,直至商等于连续去除该十进制整数,直至商等于“0”0”为为止,然后逆序排列所得到的余数。止,然后逆序排列所得到的余数。例例1.8 1.8 将十进制整数(将十进制整数(23472347)1010转换为十六进制整数,采用转换为十六进制整数,采用“除除1616倒取余倒取余”的方法,过程如下:的方法,过程如下:16 16 2347 2347 余数余数为为1111,即即A A0 0=B=B(十六十六进进制数制数为为B B)16 16 146 146 余数余数为为2 2,即即A A1 1=2=2 16 16 9 9 余数余数为为9 9,即即A A2 2=9=9 0 0 余数余数为为0 0,结束结束 最后结果为:最后结果为:(23472347)1010(A A2 2 A A1 1 A A0 0)1616=(92B92B)16161.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换3.3.3.3.十进制与十六进制之间的转换十进制与十六进制之间的转换十进制与十六进制之间的转换十进制与十六进制之间的转换1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 5/25/202329第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学(2 2 2 2)十进制小数转换成十六进制小数)十进制小数转换成十六进制小数)十进制小数转换成十六进制小数)十进制小数转换成十六进制小数方法:乘方法:乘1616取整法取整法注意:连续用基数注意:连续用基数1616去乘以该十进制小数,直至乘积的小去乘以该十进制小数,直至乘积的小数部分等于数部分等于“0”0”,然后顺序排列每次乘积的整数部分。,然后顺序排列每次乘积的整数部分。例例1.9 1.9 将十进制小数将十进制小数0.68750.6875转换成十六进制小数。其过程如转换成十六进制小数。其过程如下:下:0.68750.6875 16 16 11.000011.0000 整数部分为整数部分为11 11,即,即A A 1 1=B=B 0.0000 0.0000 余下的小数部分为余下的小数部分为0 0,结束,结束最后结果为:(最后结果为:(0.68750.6875)1010=(0.A0.A-1-1)16=16=(0.B0.B)16161.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 5/25/202330第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学(3 3 3 3)十六进制数转换十进制数)十六进制数转换十进制数)十六进制数转换十进制数)十六进制数转换十进制数方法:按位权展开后相加方法:按位权展开后相加注意:用其各位所对应的系数,按注意:用其各位所对应的系数,按“位权展开求和位权展开求和”的方的方法就可以得到,其基数为法就可以得到,其基数为1616。BF3CH=11163+15162+3161+12160 =48956D1.2 1.2 1.2 1.2 进位计数制及其转换进位计数制及其转换进位计数制及其转换进位计数制及其转换1.2.2 1.2.2 不同数制之间的转换不同数制之间的转换 5/25/202331第第1章章 汇编语言基础知识汇编语言基础知识 汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计安徽工业大学安徽工业大学因为:因为:2 23 3=8=8,所以每三位二进制数对应一位八进制数;,所以每三位二进制数对应一位八进制数;2 24 4=16=16,所以每四位二进制数对应一位十六进制。,所以每四位二进制数对应一位十六进制。(1)(1)(1)(1)二进制数转换成八进制数二进制数转换成八进制数二进制数转换成八进制数二进制数转换成八进制数从从小小数数点点所所在在位位置置分分别别向向左左向向右右每每三三位位一一组组进进行行划划分分。若若小小数数点点左左侧侧的的位位数数不不是是3 3的的整整数数倍倍,在在数数的的最最左左侧侧补补零零;若若小小数数点点右右侧侧的的位位