收藏 分享(赏)

第一章 汇编语言基础知识.ppt

上传人:无敌 文档编号:56215 上传时间:2018-03-08 格式:PPT 页数:61 大小:250.52KB
下载 相关 举报
第一章  汇编语言基础知识.ppt_第1页
第1页 / 共61页
第一章  汇编语言基础知识.ppt_第2页
第2页 / 共61页
第一章  汇编语言基础知识.ppt_第3页
第3页 / 共61页
第一章  汇编语言基础知识.ppt_第4页
第4页 / 共61页
第一章  汇编语言基础知识.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

1、第一章 汇编语言基础知识,1.1 汇编语言简介1.2 计算机中数据的表示1.3 计算机组织,1.1 汇编语言简介,1.1.1 什么是汇编语言1.1.2 为什么要学习汇编语言,1.1.1 什么是汇编语言,机器指令:cpu能直接识别并遵照执行的指令,用二进制编码表示,由操作码,操作数组成,编码只含二进制0或1。机器语言:用二进制编码组成的机器指令的集合和一组使用机器指令的规则。汇编语言:对机器指令中的操作码用英文单词的缩写描述(助记符),对操作数用标号、变量、常量描述。,用汇编语言编写的程序称为汇编源程序。 汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,汇编语言源程序要

2、翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编”,这种把汇编源程序翻译成目标程序的语言加工程序称为汇编程序。,1.1.2 为什么要学习汇编语言,汇编语言程序是用符号指令写成的,本质上是机器语言。与具体机器的机型的硬件密切相关,可以直接有效地控制计算机硬件,程序运行速度快,程序短小精悍,占用内存少,在某些特殊应用场合更能发挥作用。如:智能化仪表,家用电器,实时控制系统,单片机控制,病毒研究等。使用汇编语言能从根本上认识和理解计算机的工作过程,它可直接而精确地控制计算机硬件的操作。学习汇编语言对从事计算机的研究和开发有着重要的意义。所以,它作为一门计算机专业基础课,并对计算机专业今

3、后课程的学习是非常重要的。,1.1.3 汇编语言的特点,与机器有关:移植性差,但可直接控制硬件。程序效率高。编写汇编语言源程序比编写高级语言源程序烦琐。调试困难。,1.2 计算机中数据的表示,1.2.1 不同进位计数制及其相互转换1.2.2 二进制数和十六进制数的运算 1.2.3 带符号数的表示1.2.4 补码的加法和减法1.2.5 无符号数的表示1.2.6 字符的表示1.2.7 基本逻辑运算,1.2.1 不同进位计数制及其相互转换,1.进位计数制 对于任意一个进位计数制,如果用R表示基数,那么任何一个数S均可用如下多项式表示: S= knRn+kn-1Rn-1+k0R0+k-1R-1+k-2

4、R-2 +k-mR-m,十进制数: 423.5=4102+2101+3100+510-1 各位权值 10k 二进制数: 101101(B) = 125+123+122+120=45(D) 各位权值 2k 十六进制数: 5F(H)=5161+15160(D) 各位权值 16k,在书写不同进位计数制数时,常常在尾部用一个字母来表示该数是什么进位计数制的数。结尾用B(2进制数)、O(8进制数)、D(10进制数)、H(16进制数)。缺省为十进制数。例如712O、9198D、10010B、BE49H等等。,2.各种数制间的相互转换 例如: 13 .8125 D = 1101.1101B = D.DH,二

5、进制数转换为十进制数 方法:各位二进制数码乘以对应的权之和 例:1.1 N=101101.1B = 125+123+122+120+12-1=45.5D,十六进制数转换为十进制数 方法:各位十六进制数码乘以对应的权之和 例: 1.2 N=5FH = 5161+15160=80+15=95D,十进制数转换为二进制数 (1)降幂法:先写出小于此数的各位二进制权 值,然后再求和。(适用于数值不大的数) 例:1.3求N=13.5D的二进制数。小于此数的各位二进制权值为: 8 4 2 1 0.5 13.5D=8+4+1+0.5 =1101.1B,1000 0100 0001+ 0.1 1101.1,十进

6、制数转换为二进制数 (2)除法:不断除以2,计下余数,直到商为0为止。(仅适用于整数部分) 例:1.4求N=13D的二进制数。13/2=6 余1 (b0) 6/2=3 余0 (b1) 3/2=1 余1 (b2) 1/2=0 余1 (b3) 13D= b3b2b1b0 =1101B,对于十进制数的小数部分除了可以使用降幂法也可采用乘法,即不断乘2,并计下整数,而用剩余的小数部分再乘2,直到结果为0为止。并非所有的十进制小数都能用二进制完全表示,可按需要取一定精度即可。,例:1.5求N=0.625D的二进制数。0.6252=1.25 (b-1=1) 0.252=0.5 (b-2=0)0.52=1.

7、0 (b-3=1)N=0.625D=b-1b-2b-3=0.101B,十进制数转换为十六进制数 (1)降幂法:先写出小于此数的各位十六进制权值,然后再求和。(适用于数值不大的数) 例:1.6求N=95D的十六进制数。小于此数的各位十六进制权值为:16 1 显然应选165,再选1F,所以 N=95D=80+15=165+1F=5FH,十进制数转换为十六进制数 (2)除法:不断除以16,计下余数,直到商为0为止。(仅适用于整数部分) 例:1.7求N=95D的十六进制数。95/16=5 余15 (h0) 5/16=0 余5 (h1) N=95D= h1h0=5FH,对于十进制数的小数部分除了可以使用

8、降幂法也可采用乘法,即不断乘16,并计下整数,而小数部分再乘16,直到结果为0为止。并非所有的十进制小数都能用十六进制完全表示,可按需要取一定精度即可。,二进制数和十六进制数的相互转换 直接转换,每四位一组,整数从低位开始,小数从高位开始,不足位补0。 例:1.8 N=1011111.11(B)=01011111.1100(B)=5F.C(H),1.2.2 二进制数和十六进制数运算,二进制运算 加法规则: 0+0 =0 1+0=1 0+1=1 1+1=0(进位1:逢二进一) 乘法规则: 00=0 10=0 01=0 11=1 十六进制数运算 原则:逢十六进一,1.2.2 二进制数和十六进制数运

9、算,例1.9 43A5 + 5A34 9DD9例1.10 5A34 43A5 168F,1.2.2 二进制数和十六进制数运算,例1.11 2A34 0025 D304 5468 61984(H),1.2.3 带符号数的表示,带符号数最高位是符号位。正数的符号位为0,负数的符号位为1。表示方法:原码、补码、反码。,数的补码表示 定义: (X=0时) X补=符号+|X| -(1) (X0时) X补= 2n - |X| =( 2n - 1-|X| ) + 1 -(2) 即X0时: X补 + |X| = 2n数的补码具体操作是: 正数不变,负数则用绝对值取反+1,例1.12用8位二进制来表示,求-3补

10、。先写出+3: 0000 0011各位取反为: 1111 1100 最低位加1为: 1111 1101-3补=1111 1101,或用十六进制表示,-3补=FDHX补 求补等于 -X补 等于|X|(X0),例1.13依据补码定义写出以下各数的补码,以8位二进制表示。-1补= 28 1 = 1 0000 0000-1= 1111 1111,直接由(2)式得到。-127补= 28 127=( 28 1127 )+ 1=(1111 1111-0111 1111)+ 1 = 1000 0000 + 1= 1000 0001,例1.14 识别以下各数的十进制值。 a补=1111 1111, 求补后为00

11、00 0001 = 1补,所以,a=-1 b补=1000 0000, 求补后为1000 0000 = 128补, 所以,b=-128 c补=1000 0001, 求补后为0111 1111 = 127补, 所以,C=-127,1.2.4 补码的加减法,加法规则:X+Y补=X补+Y补 减法规则:X-Y补=X补+-Y补 例:1.158位补码的加法运算 十进制 二进制 25 0001 1001 +(32) + 1110 0000 7 1111 1001 32 0010 0000 +(25) + 1110 0111 7 0000 0111 1,1.2.5 无符号数的表示,对于正数,不保留符号位,把符号

12、位也作为数值,这样的数叫无符号数。,1.2.6 字符的表示,ASCII码扩充的ASCII码表1.1回车:0dh换行:0ah空格:20h09:30h39hAZ:41h5ahaz:61h7ah,1.2.7 基本逻辑运算,逻辑运算按位操作与运算 AND或运算 OR 异或运算 XOR非运算 NOT,1.3 计算机组织,1.3.1 计算机系统组成1.3.2 中央处理器1.3.3 存储器1.3.4 外部设备和接口,1.3.1 计算机系统组成,中央处理机 CPU 对汇编语言程序员,最关心其中的寄存器。存储器 RAM 呈现给汇编语言程序员的,是存储器地址。输入输出子系统 I/O 汇编语言程序员看到的是端口(I

13、/O地址)。系统总线 数据总线, 地址总线, 控制总线 。,1.3.2 中央处理器CPU,CPU 的发展:8088 (准16位机) 8086:16位机,16位通用寄存器,20位地址线,1M寻址.80286(准32位机)80386 : 32位机,32位通用寄存器,32位地址线,4G寻址.8048680586:1993,字长32位,主频60-166M,数据总线64,地址总线32,寻址4G80686P:1997,字长32位,主频-333 M,数据总线64,地址总线32,寻址4GP:1999, 字长32位,主频-600 M,数据总线64,地址总线36,寻址64G P,1)CPU的组成,运算器控制器寄存

14、器高速缓存,2)寄存器组,通用数据寄存器 AX =AH AL 累加器 BX =BH BL 基址寄存器CX =CH CL 计数寄存器DX =DH DL 数据寄存器,通用地址寄存器SP 堆栈指针BP 基址指针DI 目的变址寄存器(自动增1/减1)SI 源变址寄存器(自动增1/减1),段寄存器CS 代码段寄存器DS 数据段寄存器ES 附加段寄存器SS 堆栈段寄存器,专用寄存器IP 指令指针寄存器FLAGS 标志寄存器 状态标志和控制标志,1.3.3 存储器,存储器分内存和外存,这里指内存,外存指硬盘等。存储器按作用分: RAM ROM(C000FFFF) Cache(缓冲CPU与低速的RAM),1)

15、存储单元的地址和内容,80x86微机的内存储器以字节为基本存储单位,或叫基本存储单元。每一个存储单元对应一个唯一的存储器地址,从低到高按顺序编号,称为物理地址。存储单元的地址从0开始编号,机器中地址以二进制数表示,无符号数,书写用十六进制。 80x86微机使用20位地址线,寻址能力为1MB,范围为00000HFFFFFH。,一个存储单元中存放的信息 称为该存储单元的内容。 一个字存放在连续单元,低位对低地址,高位对高地址,访问时以低地址访问。,2)存储器的分段,? 字长16位表示地址,可表示多少字节单元。 210=1024=1K 216=65536=64K 0-65535 地址编号十六进制:

16、0-FFFFH ? 用什么办法提供20位地址。,注:相当于从0地址开始,每16个字节为一小段,段地址必须从任一小段的首地址开始。,用段地址:偏移地址表示逻辑地址。每个逻辑地址对应一个唯一的物理地址,但每个物理地址并不对应唯一的逻辑地址。 例如:逻辑地址2BH:23H和逻辑地址2CH:13H 逻辑地址2BH:23H的物理地址为: 2B0H + 23H = 2D3H 逻辑地址2CH:13H的物理地址为: 2C0H + 13H = 2D3H程序中使用的是逻辑地址。,3)程序和数据在存储器中的分配,DS,CS,00000,A0000,FFFFF,1.3.4 CPU对存储器的读写操作,CPU,地址线(V

17、AL的地址),控制线(读写命令),数据线(VAL的值),内存,图1.6 CPU读内存数据的过程,1.3.4 CPU对存储器的读写操作,CPU,地址线(VAL的地址),控制线(读写命令),内存,数据线(VAL的值),图1.7 CPU写内存数据的过程,图1.7 CPU写内存数据的过程,1.3.4 CPU对存储器的读写操作,有三个问题值得进一步讨论:1. 在上面讨论CPU对存储器的读写操作时,有一个细节问题没有提及,读写一个字节(8位)和读写一个字(16位),有何区别?2当内存地址是奇数时,从内存读16位的数据,机器内部如何操作实现呢?3如果要把一个内存单元A的数据传送到另一个内存单元B,用一条MO

18、V传送指令可以吗?,1.3.5 外部设备和接口,外部设备也称作输入/输出设备或I/O设备。外部设备和主机之间通过输入/输出接口连接,接口内有若干寄存器,用于在外设和CPU间传递信息。每个寄存器规定一个端口(Port)号,也称作I/O地址。,寄存器(端口)可分为3类: 数据端口、控制端口、状态端口通常采用十六进制数来表达端口Intel 8086支持64K个8位端口其I/O地址可以表示为:0000H FFFFH,1) CPU与外部设备的数据交换,CPU,地址线(端口号61H),控制线(读写命令),数据线(数据),接口,图1.8 CPU读输入设备的过程,2)用系统功能调用实现CPU与外部设备的数据交

19、换,通过调用例行程序进行BIOS Basic Input/Output System (存在ROM中)DOS Disk Operating System (存在磁盘中),1.3.6 32位80x86CPU的工作模式,1实模式实模式的特点是就是为了兼容16位机的特点,内存寻址为00FFFFFH的1MB空间,20位的物理地址由16位的段地址和16位的偏移地址组成,CPU地址线也只能低20位线有效。 2保护模式全部地址线参于寻址。程序访问内存使用的为逻辑地址,或称为虚拟地址。该虚拟地址由16位的段选择符和32位偏移地址得到,16位的段选择符存放在段寄存器中,应用程序不得修改,由操作系统决定。 3虚拟8086模式虚拟8086模式就是生成多个虚拟的8086CPU,以便运行实模式下的8086程序。也支持内存保护和隔离。WINDOWS下在打开的DOS窗口运行一个DOS应用程序,则该程序运行在虚拟8086模式。这就是我们常用的运行模式。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报