第1章汇编语言基础知识

合集下载

汇编语言基础知识

汇编语言基础知识
转换从最低位开始
例 0. 1
01
0
01





÷2
÷2 ÷2
÷2
÷2
÷2
0.640625 0.28125 0.5625 0.125 0.25 0.5
0.101001B=0.640625D
24
5. 二进制与八进制和十六进制间的转换
二进制与八进制和十六进制之间的对应关系很简单: 三位二进制数对应一位八进制数,四位二进制数对 应一位十六进制数。
第一章 基础知识
本章主要学习内容: 1.汇编语言的一般概念 2.学习和使用汇编语言的目的 3.进位计数制及其相互转换 4.带符号数的表示 5.字符的表示 6.基本逻辑运算
4
§1.1 汇编语言的一般概念
计算机程序设计语言可分为机器语言、高级 语言和汇编语言三类。
1. 机器语言 机器语言就是把控制计算机的命令和各种数83. Nhomakorabea汇编语言
(1)定义 虽然高级语言方便了人对计算机的使用,但
其运行效率较低。在一些应用场合,如系统管 理,实时控制等,难于满足要求。因此又希望使 用机器语言。
为了便于记忆和阅读,使用字母和符号来 表示机器语言的命令,用十进制数或十六进制 数来表示数据,这样的计算机程序设计语言就 称为汇编语言。
18
例:将325转换为二进制数,直到余数为0。 首先确定二进制数的最高位 因为29(512)>325>28(256)。因此从K8位开始比较。
减数比较
Ki
325-256=69
K8
69<128
K7
69-64=5
K6
5<32
K5
5<16

第1章汇编语言知识学习基本知识

第1章汇编语言知识学习基本知识

第1章汇编语⾔知识学习基本知识第1章汇编语⾔基础知识本章介绍学习汇编语⾔程序设计所必须具备的基本知识,主要包括汇编语⾔的基本概念及计算机中数据的表⽰⽅法。

通过本章的学习,读者应能了解汇编语⾔概念及其使⽤的进位计数制、不同进位计数制之间的转换、计算机编码以及基本数据类型。

本章内容要点:汇编语⾔的概念汇编语⾔的特点不同进位计数制之间的转换计算机编码1.1汇编语⾔概述1.1.1 汇编语⾔基本概念⾃然语⾔是具有特定语⾳和语法等规范的、⽤于⼈类表达思想并实现相互交流的⼯具。

⼈与⼈之间只有使⽤同⼀种语⾔才能进⾏直接交流,否则就必须通过翻译。

要使计算机为⼈类服务,⼈们就必须借助某种⼯具,告诉计算机“做什么”甚⾄“怎么做”,这种⼯具就是程序设计语⾔。

程序设计语⾔通常分为三类:机器语⾔、汇编语⾔和⾼级语⾔。

⽽前两种语⾔与机器密切相关,统称为低级语⾔。

1.机器语⾔机器语⾔是计算机第⼀代语⾔,它全部由0、1代码组成,是能够直接被机器所接受的语⾔,是最底层的计算机语⾔。

机器语⾔不容易记忆,程序编写难度⼤,调试修改繁琐,且不易移植,现在程序员很少⽤。

但机器语⾔执⾏速度最快,它是⼀种⾯向机器的程序设计语⾔。

2.汇编语⾔为了克服机器语⾔难以记忆、表达和阅读的缺点,⼈们采⽤具有⼀定含义的符号作为助忆符,⽤指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。

例如,⽤ADD表⽰加法指令,SUB表⽰减法指令,MOV表⽰传送指令等。

汇编语⾔是汇编指令集、伪指令集和使⽤它们规则的统称。

伪指令的概念将在第4章介绍。

汇编语⾔⽐机器语⾔直观,容易记忆和理解,⽤汇编语⾔编写的程序也⽐机器语⾔程序易读、易检查、易修改。

对于不同的计算机,针对同⼀问题所编写的汇编语⾔源程序是互不通⽤的。

⽤汇编语⾔编写的程序执⾏效率⽐较⾼,但通⽤性与可移植性仍然⽐较差。

计算机不能直接识别⽤汇编语⾔编写的程序,必须由⼀种专门翻译程序将汇编语⾔程序翻译成机器语⾔程序,计算机才能执⾏。

《汇编语言程序设计》(第四版)教案及答案解析

《汇编语言程序设计》(第四版)教案及答案解析

《汇编语言程序设计》教案附:习题参考答案《汇编语言程序设计》(第4版)钱晓捷主编前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。

它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。

3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。

(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。

(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。

(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。

(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。

(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。

(7).第九章说明BIOS和DOS系统功能调用的使用方法。

(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。

附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (1)1.1进位计数制与不同基数的数之间的转换 (1)1.2二进制数和十六进制数的运算 (2)1.3计算机中数和字符的表示 (3)1.4几种基本的逻辑运算 (3)第 2 章 80X86计算机组织 (4)2.180X86微处理器 (4)2.2基于微处理器的计算机系统构成 (4)2.3中央处理机 (5)2.4存储器 (6)2.5外部设备 (7)第 3 章 80X86的指令系统和寻址方式 (8)3.180X86的寻址方式 (8)3.2程序占有的空间和执行时间 (10)3.380X86的指令系统 (10)第 4 章汇编语言程序格式 (27)4.1汇编程序功能 (27)4.2伪操作 (27)4.3汇编语言程序格式 (31)4.4汇编语言程序的上机过程 (34)第 5 章循环与分支程序设计 (37)5.1循环程序设计 (37)5.2分支程序设计 (38)5.3如何在实模式下发挥80386及其后继机型的优势 (38)第 6 章子程序结构 (40)6.1子程序的设计方法 (40)6.2子程序的嵌套 (41)6.3子程序举例 (41)第 7 章高级汇编语言技术 (43)7.1宏汇编 (43)7.2重复汇编 (44)7.3条件汇编 (45)第 8 章输入/输出程序设计 (46)8.1I/O设备的数据传送方式 (46)8.2程序直接控制I/O方式 (47)8.3中断传送方式 (47)第 9 章 BIOS和DOS中断 (50)9.1键盘I/O (50)9.2显示器I/O (52)9.3打印机I/O (53)9.4串行通信口I/O (54)第 10 章图形与发声系统的程序设计 (55)10.1显示方式 (55)10.2视频显示存储器 (55)10.3EGA/VGA图形程序设计 (56)10.4通用发声程序 (57)10.5乐曲程序 (58)第 11 章磁盘文件存取技术 (59)11.1磁盘的记录方式 (59)11.2文件代号式磁盘存取 (60)11.3字符设备的文件代号式I/O (61)11.4BIOS磁盘存取功能 (62)附录:《IBM—PC汇编语言程序设计》习题参考答案 (63)第一章.习题 (63)第二章.习题 (64)第三章.习题 (65)第四章.习题 (79)第五章.习题 (84)第六章.习题 (104)第七章.习题 (118)第八章.习题 (125)第九章.习题 (130)第十章.习题 (134)第十一章.习题 (145)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。

汇编语言基础知识

汇编语言基础知识

第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的信号,如时钟信号、中断请求信号和准备就绪信号等。

汇编语言学习笔记

汇编语言学习笔记

汇编语言学习笔记《汇编语言》--王爽前言学习汇编目的:充分获得底层编程体验;深刻理解机器运行程序的机理。

原则:没有通过监测点不要向下学习;没有完成当前实验不要向下学习。

第一章基础知识有三类指令组成汇编语言:汇编指令;伪指令;其他符号。

8bit = 1byte = 一个存储单元有n根地址线,则可以寻址2的n次方个内存单元。

1.1节--1.10节小结(1)汇编指令是机器指令的助记符,同机器指令一一对应。

(2)每一种cpu都有自己的汇编指令集。

(3)cpu可以直接使用的信息在存储器中存放。

(4)在存储器中指令和数据没有任何区别,都是二进制信息。

(5)存储单元从零开始顺序编号。

(6)一个存储单元可以存储8个bit,即八位二进制数。

(7)每一个cpu芯片都有许多管脚,这些管脚和总线相连。

也可以说,这些管脚引出总线。

一个cpu可以引出的三种总线的宽度标志了这个cpu不同方面的性能。

地址总线的宽度决定了cpu的寻址能力;数据总线的宽度决定了cpu与其他器件进行数据传送时的一次数据传送量;控制总线的宽度决定了cpu对系统中其他器件的控制能力。

监测点:1KB的存储器有1024个存储单元?存储单元的编号从0到1023.内存地址空间:最终运行程序的是cpu,我们用汇编编程时,必须要从cpu的角度思考问题。

对cpu来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受cpu寻址能力的限制。

这个逻辑存储器即是我们所说的内存地址空间。

第二章寄存器(cpu的工作原理)mov ax, 2add ax, axadd ax, axadd ax, ax(1)cpu中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;(2)段地址和偏移地址通过内部总线送人一个称为地址加法器的部件;(3)地址加法器将两个16位地址合成为一个20位的物理地址;(4)地址加法器通过内部总线将20位物理地址送人输入输出控制电路;(5)输入输出控制电路将20位物理地址送上地址总线;(6)20位物理地址被地址总线传送到存储器;段地址*16+偏移地址= 物理地址的本质含义内存并没有分段,段的划分来自cpu。

[所有分类]汇编语言基础知识

[所有分类]汇编语言基础知识
d,e,f打头,头部应加0,如0A8F5H;记数符号 a,b,c,d,e,f 不区别大小写,与ABCDEF等效。
3)十进制数尾部加D(d),但通常可以省略。
5
第一章 汇 编 语 言 基 础 知 识
33.数.数制制间间转转换换
1)十进制数转换二进制数; 2)十进制数转换十六进制数; 3)二进制数十六进制数互相转换;
第一章 汇 编 语 言 基 础 知 识
封面
1
第一章 汇 编 语 言 基 础 知 识
1.1数据表示与运算
1.1.1 1.1.2 1.1.3 1.1.4
数制 编码 有符号数的表示方法 二进制运算
返回第一章
2
第一章 汇 编 语 言 基 础 知 识
1.1.1 数制
[数制涉及三个问题:计数符号 基数和权 计数规则 (1)计数符号
1.1.3 编码
十进制 BCD码
0
0000
1
0001
2
0010
计算机中的数采用二进制数,字母3、符号0等01也1 只
能采用二进制代码(0,1)的排列组合表4 示(0编10码0)。
(两种编码:BCD码、ASCII码)
5
0101
1.
BCD 码(8421码、二──十进制67数)
0110 0111
定用四解位决二十进进制制数数表在示计十一算进位机制十内进部制如数何B。表C89D示码。BC1100D00码10 规
二进制数是计算机内部采用的,并唯一能够 直接被计算机识别的数。4
第一章 汇 编 语 言 基 础 知 识
2. 十六进制数 2. 十六进制数 8a0f.6bH=8×163+10 ×162+0 ×161+15 ×160+6 ×16-

汇编语言-第二版-王爽-完整答案

汇编语言-第二版-王爽-完整答案

汇编语言-第二版-王爽-完整答案第1章基础知识检测点1.1(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13。

(2)1KB的存储器有1024个存储单元。

存储单元的编号从0到1023。

(3)1KB的存储器可以存储1024*8个bit,1024个Byte。

(4)1GB、1MB、1KB分别是2^30、2^20、2^10 Byte。

(n^m的意思是n的m次幂)(5)8080、8088、80286、80386的地址总线宽度分别是16根、20根、24根、32根,则它们的寻址能力分别为:64(KB)、1(MB)、16(MB)、4(GB)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。

则它们一次可以传送的数据为:1(B)、1(B)、2(B)、2(B)、4(B)。

(7)从内存中读取1024字节的数据,8086至少要读512次、80386至少要读256次。

(8)在存储器中,数据和程序以二进制形式存放。

第2章寄存器答案检测点2.1(1) 写出每条汇编指令执行后相关寄存器中的值。

mov ax,62627 AX=F4A3Hmov ah,31H AX=31A3Hmov al,23H AX=3123Hadd ax,ax AX=6246Hmov bx,826CH BX=826CHmov cx,ax CX=6246Hmov ax,bx AX=826CHadd ax,bx AX=04D8Hmov al,bh AX=0482Hmov ah,bl AX=6C82Hadd ah,ah AX=D882Hadd al,6 AX=D888Hadd al,al AX=D810Hmov ax,cx AX=6246H(2) 只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。

解:mov ax,2add ax,axadd ax,axadd ax,ax检测点2.2(1) 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为00010H到1000FH。

汇编语言程序设计复习

汇编语言程序设计复习

知识点第一章基础知识(1)正负数的补码表示, 掌握计算机中数和字符的表示;eg.假设机器字长为8位,[+3]补=00000011B,[-3]补= 11111101 H 。

十六进制数0FFF8H表示的十进制正数为65528D,表示的十进制负数为-8D。

8位二进制数被看成是带符号补码整数时,其最小值是-128,最大值是 127 。

第二章80x86计算机组织(1)中央处理机CPU的组成和80x86寄存器组,重点:专用寄存器,段寄存器eg: IP寄存器中保存的是?代码段中的偏移地址FLAGS标志寄存器中共有几位条件状态位6位,有几位控制状态位2位,标志寄存器分为哪2类?陷阱标志,中断标志。

(2)存储单元的地址和内容每一个字节单元给以一个唯一的存储器地址,称为物理地址;一个存储单元中存放的信息称为该存储单元的内容。

存储器地址的分段,(低位字节存放)低地址,(高位字节存放)高地址;实模式下逻辑地址、选择器和偏移地址;物理地址的表示段基地址加上偏移地址。

eg.如果SS=6000H,说明堆栈段起始物理地址是_____60000H___。

已知字节(00018H)=14H,字节(00017H)=20H,则字(00017H)为__1420H______。

如果(SI)=0088H,(DS)=5570H,对于物理地址为55788H的内存字单元,其内容为0235H,对于物理地址为5578AH的内存字单元,其内容为0E60H,那么执行指令LDS SI,[SI]以后,(SI)= 0235H ,(DS)= 0E60H .第三章80x86的指令系统和寻址方式与数据有关的寻址方式(立即寻址方式,寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,寄存器相对寻址方式,基址变址寻址方式,相对基址变址寻址方式)和与转移地址有关的寻址方式(段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址)。

数据传送指令(通用数据传送指令、累加器专用传送指令、输入输出指令)、算术指令(加法指令、减法指令(*加减指令对4个标志位的影响[of,cf,sf,zf])、乘法指令(*乘法指令的要求:目的操作数必须是累加器)、除法指令(*被除数在累加器中,除法指令执行完以后,商和余数在?))、逻辑指令(逻辑运算指令(*XOR,AND,OR,TEST指令及指令执行后对标志位的影响)、移位指令)、串处理指令(与REP相配合工作的MOVS、STOS、LODS 指令,与REPE/REPZ和REPNE/REPNZ联合工作的CMPS、SCAS指令)、控制转移指令(无条件转移指令、条件转移指令、循环指令、子程序调用指令、中断)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第1章汇编语言基础知识本章介绍学习汇编语言程序设计所必须具备的基本知识,主要包括汇编语言的基本概念及计算机中数据的表示方法。

通过本章的学习,读者应能了解汇编语言概念及其使用的进位计数制、不同进位计数制之间的转换、计算机编码以及基本数据类型。

本章内容要点:汇编语言的概念汇编语言的特点不同进位计数制之间的转换计算机编码1.1汇编语言概述1.1.1 汇编语言基本概念自然语言是具有特定语音和语法等规范的、用于人类表达思想并实现相互交流的工具。

人与人之间只有使用同一种语言才能进行直接交流,否则就必须通过翻译。

要使计算机为人类服务,人们就必须借助某种工具,告诉计算机“做什么”甚至“怎么做”,这种工具就是程序设计语言。

程序设计语言通常分为三类:机器语言、汇编语言和高级语言。

而前两种语言与机器密切相关,统称为低级语言。

1.机器语言机器语言是计算机第一代语言,它全部由0、1代码组成,是能够直接被机器所接受的语言,是最底层的计算机语言。

机器语言不容易记忆,程序编写难度大,调试修改繁琐,且不易移植,现在程序员很少用。

但机器语言执行速度最快,它是一种面向机器的程序设计语言。

2.汇编语言为了克服机器语言难以记忆、表达和阅读的缺点,人们采用具有一定含义的符号作为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。

例如,用ADD表示加法指令,SUB表示减法指令,MOV表示传送指令等。

汇编语言是汇编指令集、伪指令集和使用它们规则的统称。

伪指令的概念将在第4章介绍。

汇编语言比机器语言直观,容易记忆和理解,用汇编语言编写的程序也比机器语言程序易读、易检查、易修改。

对于不同的计算机,针对同一问题所编写的汇编语言源程序是互不通用的。

用汇编语言编写的程序执行效率比较高,但通用性与可移植性仍然比较差。

计算机不能直接识别用汇编语言编写的程序,必须由一种专门翻译程序将汇编语言程序翻译成机器语言程序,计算机才能执行。

例如,在8086机器下,分别用汇编语言和机器语言计算10+20的程序代码如下:汇编语言机器语言MOV AL,10 B0 0AADD AL,20 04 14显然,使用汇编语言编写的程序要比机器语言更容易理解。

3.高级语言机器语言和汇编语言以外的程序设计语言统称高级语言。

其特点是更加接近自然语言和惯用的数学表达形式,与计算机硬件结构无关,因而便于使用,便于交流和推广。

例如,可以在程序中直接使用表达式10+20。

目前,常用的高级语言数十种,如C、C++、Pascal、Basic、Java等。

高级语言可分成编译型和解释型高级语言,需要分别使用编译程序和解释程序将源程序翻译成机器语言程序,才能交计算机执行。

总之,高级语言编程效率高,但运行效率低。

1.1.2 汇编语言的特点汇编语言相对机器语言而言好记好用,但远不如高级语言方便、实用,而且编写同样的程序,使用汇编语言比使用高级语言花费的时间更多,调试和维护更困难,在计算机速度大大提高和存储器容量大大增加的今天,高级语言的使用更为广泛和普遍(特别是编写大型程序)。

既然如此,为什么还要使用汇编语言呢?主要有两个原因:性能和对计算机的完全控制。

一般而言,汇编语言具有如下特点:(1)执行速度快一个汇编语言程序,要比高级语言程序执行得更快。

程序的执行速度对于某些应用来说是至关重要的。

对于这些应用,单纯使用高级语言往往达不到要求,单纯使用汇编语言编写程序也并不是最好的方案,许多成功的大型应用程序往往使用的是混合编程。

首先使用高级语言编写整个程序,然后测试程序的执行时间,再使用汇编语言重写其中最费时间的部分。

这样做的依据是在实际使用中,通常程序的大部分执行时间都花费在一小部分代码上。

例如编写图像处理程序,就往往使用汇编语言编写软件中的关键部分。

(2)程序短小一个汇编语言程序,要比高级语言程序更小。

在某些情况下,设备中的嵌入式处理器往往只有很少的内存,使用汇编语言可能是唯一的方法。

如智能卡中有CPU,但是智能卡中很难有1 MB以上的内存,也不可能有带分页的硬盘,但智能卡又必须执行复杂的加密解密计算。

个人数字助理(PDA)和其他使用电池作为能源的无线电子设备,为了节省电池的电力,往往也只有很少的内存,它们也需要使用短小精悍而且具有高效率的机器代码。

(3)可以直接控制硬件某些应用程序要求能够完全控制计算机硬件,这也必须使用汇编语言。

如操作系统中的低级中断和陷阱处理程序以及许多嵌入式实时系统中的设备控制程序都属于这一类应用。

(4)可以方便地编译编译器可以产生供编程者使用的汇编程序或者自己执行汇编过程。

因此,为了理解编译器的工作原理,必须首先理解汇编语言。

(5)辅助计算机工作者掌握计算机体系结构研究汇编语言可以使人们清楚实际计算机结构。

特别是对于学习计算机体系结构的学生,编写汇编语言是在结构层理解计算机的唯一途径。

(6)程序编制耗时,可读性差用汇编语言编制程序十分费时,而且程序的质量直接受到程序员技术水平的影响,程序的可读性也很差。

就如前面所举的加法计算的例子,用高级语言编程只需写一条加法表达式,简单明了,极其直观。

而用汇编语言编程则需写出两条指令,这些指令都是些对硬件的操作,因此程序的可读性很差。

(7)程序可移植性差由于汇编语言是面向硬件的,所以用汇编语言编制的程序可移植性很差。

显而易见,不同的CPU都有相互独立的指令系统,相互间无任何关系,就算是使用同一系列CPU的机器,因其外围硬件可能有差别,这也会使相同的程序在不同的机器上无法通用。

不难看出,汇编语言存在很多的弱点,但由于它具有一些高级语言所不具备的突出优点,所以汇编语言的应用范围还是很广的。

特别是当用户需要研究计算机具体的工作原理的时候,还必须要掌握汇编语言。

1.2 进位计数制及其转换计算机内部的信息分为两大类:控制信息和数据信息。

控制信息是一系列的控制命令,用于指挥计算机如何操作;数据信息是计算机操作的对象,一般又可分为数值数据和非数值数据。

数值数据用于表示数量的大小,它有确定的数值;非数值数据没有确定的数值,它主要包括字符、汉字和逻辑数据等等。

对计算机而言,不论是控制命令还是数据,它们都要用“0”和“1”两个基本符号即基2码来编码表示,这是由于以下三个原因:(1)基2码在物理上最容易实现。

例如,用高、低两个电位表示“1”和“0”,或用脉冲的有、无表示“1”和“0”,用脉冲的正、负极性表示“1”和“0”等等,可靠性都较高。

(2)基2码用来表示二进制数,其编码及加减运算规则简单。

(3)基2码的两个符号“1”和“0”正好与逻辑数据“真”与“假”相对应,为计算机实现逻辑运算带来了方便。

因此,不论是什么信息,在输入计算机内部时,都必须用基2码编码表示,以方便存储、传送和处理。

1.2.1 数与数制1.数的表示进位计数制是一种计数的方法。

在日常生活中,人们使用各种进位计数制,如六十进制(1小时=60分,1分=60秒),十二进制(1英尺=12英寸,1年=12月)等。

但人们最熟悉和最常用的是十进制计数。

按进位的原则进行计数叫进位计数制,简称数制。

每种数制都有其基数和各数位的位权。

基数是指该数制中允许选用的基本数码的个数。

每个数码所表示的数值等于该数码乘以一个与数码所在位置有关的常数,这个常数叫位权,位权的大小是以基数为底,数码所在位置的序号为指数的整数次幂。

在汇编语言中常用的进位计数制有:二进制、八进制、十进制和十六进制,其基数、数码和进位关系如表1-1所示。

表1-1 几种常用的进位计数制的基数、数码和进位关系在十进制数中,个位的位权为100,十位的位权为101,百位的位权为102,千位的位权为103,而在小数点后第一位上的位权为10−1,小数点后第二位的位权为10−2等等。

因此,如果有十进制数123.45,则百位上的1表示1个100,十位上的2表示2个10,个位上的3表示3个1,小数点后第一位上的4表示4个0.1,小数点后第二位上的5表示5个0.01,用位权表示成:(123.45)10 =1×102+2×101+3×100+4×10-1+5×10-2同理,任意一个二进制数、八进制数和十六进制数也可用位权表示。

例如:(101.01)2=1×22+0×21+1×20+0×2-1+1×2-2 (125.46)8 =1×82+2×81+5×80+4×8−1+6×8−2 (AD.5F)16 =A ×161+D ×160+5×16−1+F ×16−2据上述概念,可推广出表示任意进制数的通式:N =±ixni m=-∑r i=±(n ii x =∑r i +1mii x -=-∑r i )其中ni i x =∑r i 为整数部分,1mii x -=-∑r i 为小数部分。

r 为基数,每一项的数字可用0~r -1数字中的一个数字来表示。

2.计数制的书写规则为了区别不同的计数制,可采用下列两种方法:(1)在数字后面加写相应的英文字母作为标识,英文字母不分大小写。

本书约定采用大写字母形式。

如:1100011B 。

B 后缀表示为二进制数(Binary )。

2357O 。

O 后缀表示为八进制数(Octal )。

由于英文字母O 容易和零误会,所以也可以用Q 来表示八进制。

1000D 。

D 后缀表示为十进制数(Decimal )。

3AB5H 。

H 后缀表示为十六进制数(Hexadecimal )。

如果记数符号a ,b ,c ,d ,e ,f 打头,头部应加0,如0A8F5H ;记数符号 a ,b ,c ,d ,e ,f 不区别大小写,与ABCDEF 等效。

缺省后缀时,一般约定为十进制数。

(2)在括号外面加数字下标。

如:(1011)2表示二进制数的1011(2DF2)16表示十六进制数的2DF21.2.2 不同数制之间的转换1.十进制数与二进制数之间的转换 (1)十进制整数转换成二进制整数 方法:除2取余法注意:第一次得到的余数为二进制数的最低位,最后得到的余数为二进制数的最高位。

例1.1 将十进制数97转换成二进制数。

其过程如下:即A 0=1 即A 1=0 即A 2=0 即A 3=0 即A 4=0 即A 5=1 即A 6=1 结束最后结果为:(97)10 =(A 6 A 5 A 4 A 3 A 2 A 1 A 0)2=(1100001)2 (2)十进制小数转换成二进制小数 方法:乘2取整法注意:最后将每次得到的整数部分(必定是0或1)按先后顺序从左到右排列即得到所对应二进制小数。

例1.2 将十进制小数0.8125转换成二进制小数。

相关文档
最新文档