汇编语言01补充_第1页
汇编语言01补充_第2页
汇编语言01补充_第3页
汇编语言01补充_第4页
汇编语言01补充_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Email: Assembly Language Programming第1章汇编语言基础知识微型计算机的系统组成I/O接口主存储器系统总线CPU寄存器控制器运算器辅助存储器输入设备输出设备汇编语言程序员看到的硬件中央处理单元 CPU(Intel 80 x86)对汇编语言程序员,最关心其中的寄存器存储器(主存储器)呈现给汇编语言程序员的,是存储器地址外部设备(接口电路)汇编语言程序员看到的是端口(I/O地址)计算机的程序设计语言机器语言(Machine Language)B8 64 00 05 00 01汇编语言(Assembly Language)mov ax,100;取得一个数据100(M

2、OV是传送指令)add ax,256;实现100+256(ADD是加法指令) 高级语言(High-level Language)100256汇编语言和高级语言的比较-1汇编语言与处理器密切相关 汇编语言程序的通用性、可移植性较差高级语言与具体计算机无关高级语言程序是标准化语言,可在多种计算机上编译后执行汇编语言:高级语言:汇编语言和高级语言的比较-2汇编语言功能有限、涉及硬件细节 程序编写比较繁琐,调试比较困难高级语言提供了强大的功能,不必关心琐碎问题类似自然语言的语法,易于掌握和应用汇编语言:高级语言:汇编语言和高级语言的比较-3汇编语言本质上就是机器语言 可以直接、有效地控制计算机硬件易于

3、产生速度快、容量小的高效率目标程序高级语言不针对具体计算机系统不易直接控制计算机的各种操作目标程序比较庞大、运行速度较慢汇编语言:高级语言:汇编语言的特点汇编语言的优点:直接控制计算机硬件部件编写“时间”和“空间”两方面最有效程序汇编语言的缺点:与处理器密切有关需要熟悉计算机硬件系统、考虑许多细节编写繁琐,调试、维护、交流和移植困难汇编语言:?高级语言:?汇编语言和高级语言的混合编程汇编语言的优点使得它在程序设计中占有重要的位置,不可被取代汇编语言的缺点使得人们主要采用高级语言进行程序开发工作有时需要采用高级语言和汇编语言混合编程,互相取长补短,更好地解决实际问题混合编程取长补短汇编语言的应用

4、场合程序要具有较快的执行时间,或者只能占用较小的存储容量程序与计算机硬件密切相关,程序要直接、有效地控制硬件大型软件需要提高性能、优化处理的部分没有合适的高级语言、或只能采用汇编语言的时候分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等等 汇编语言的作用实在不小 !1.2 数据表示1.2.1 数制二进制数、十六进制数它们与十进制数的相互转换1.2.2 编码BCD码和ASCII码的规律1.2.3 有符号数的表示法有符号整数的补码表示1.2.4 二进制运算二进制的算术运算和逻辑运算十进制的加减运算二进制数便于计算机存储及物理实现特点:逢二进一,由0和1两个数码组成,基数为2

5、,各个位权以2k表示二进制数:anan-1a1a0.b1b2bman2nan-12n-1a121a020 b12-1b22-2bm2-m =Xd其中ai,bj非0即1十六进制数用于表达二进制数,相互转换简单基数16,逢16进位,位权为16k,16个数码:0,1,2,3,4,5,6,7,8,9A,B,C,D,E,F十六进制数:anan-1a1a0.b1b2bman16nan-116n-1a1161 a0160b116-1b216-2bm16-m其中ai,bj是0F中的一个数码十进制整数转换为二或十六进制数整数部分转换:用除法十进制数整数部分不断除以基数2或16,并记下余数,直到商为0为止由最后一

6、个余数起逆向取各个余数,则为转换成的二进制和十六进制数例:117D =B117D=75H十进制小数转换为二或十六进制数小数部分转换:用乘法分别乘以各自的基数,记录整数部分,直到小数部分为0为止0.81250.1101B0.81250.DH小数转换会发生总是无法乘到为0的情况可选取一定位数(精度)将产生无法避免的转换误差 十进制转换成二进制方法:对于整数部分除2取余法,小数部分采用乘2取整法例:117.8125D = 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.625 1 2 1.25 1 2 0.5 0 2 1.0 1

7、1110101.1101B二或十六进制数转换为十进制数方法:按权展开二进制数转换为十进制数0011.1010B12112012-102-212-33.625十六进制数转换为十进制数1.2H116021611.125十六进制数用后缀字母H二进制数用后缀字母B二进制数转换为十六进制数方法:将二进制数从小数点开始,分别向左向右4位分成一组,不足4位补0,然后写出对应的十六进制数即可。例:10110.1110110.11B 0001 0110.1100=16.CH 1 6 C十六进制数转换为二进制数方法:将每位十六进制数写出对应的4位二进制数,然后去掉前导0和尾数0即可。例: 3A.63A.6H 00

8、11 1010.0110 = 111010.011BBCD码(Binary Coded Decimal)二进制编码的十进制数一个十进制数位09用4位二进制编码来表示常用8421 BCD码:低10个4位二进制编码表示压缩BCD码:一个字节表达两位BCD码非压缩BCD码:一个字节表达一位BCD码(低4位表达数值,高4位常设置为0)BCD码很直观BCD码:0100 1001 0111 1000.0001 0100 1001十进制真值:4978.149BCD码便于输入输出,表达数值准确BCD码例:35.8的BCD码为:00110101.1000ASCII码(美国标准信息交换码)标准ASCII码用7位二

9、进制编码,有128个不可显示的控制字符前32个和最后一个编码回车CR:0DH 换行LF:0AH 响铃BEL:07H可显示和打印的字符:20H后的94个编码数码09:30H39H大写字母AZ:41H5AH小写字母az:61H7AH空格:20H扩展ASCII码:最高D7位为1,表达制表符ASCII码表低高0000010100111001011101110000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 NUL SOH STX ETX EOT ENO ACK BEL BS HT LF VT F

10、F CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US SP ! ” # $ % & ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z | DEL“F”的ASCII码为 100 0110 =46H。真值和机器数真值:现实中真实的数值机器数:计算机中用0和1数码组合表达的

11、数值无符号数:只表达0和正整数的定点整数有符号数:表达负整数、0和正整数的定点整数符号位需要占用一个位常用机器数的最高位0表示正数、1表示负数定点数:固定小数点的位置表达数值的机器数定点整数:将小数点固定在机器数的最右侧表达的整数定点小数:将小数点固定在机器数的最左侧表达的小数浮点数:小数点浮动表达的实数原码表示法数据的最高位用来表示符号,称为符号位,符号位为0表示正数,符号位为1表示负数,其余位为数值位,用数据的绝对值表示。举例:(1) X=+85, X原=0 (2) X=-85, X原=1 (3)对于零: 0有两种表示形式 +0原=00000000 , -0原=18位二进制原码所能表示的数

12、据范围: -127127。反码表示法在反码表示中,仍用0表示正号,1表示负号。对于正数,其反码表示与其原码表示完全相同;对于负数,符号位为1,数值位用数据的绝对值按位取反表示。举例:(1) X=+85, X反=01010101 (2) X=-85, X反=1 (3)对于零: 0有两种表示形式 +0反=00000000 , -0反=111111118位二进制反码所能表示的数据范围: -127127。补码表示法在补码表示中,仍用0表示正号,1表示负号。对于正数,其补码表示与其原码表示完全相同;对于负数,符号位为1,数值位为数据的绝对值按位取反加1表示。举例:(1) X=+85, X补=0 (2)

13、X=-85, X补=1 (3)对于零: 0只有一种表示形式 0补=00000000 8位二进制补码表示的数值范围:-128+127在8位二进制补码表示法中,把符号位为1,数值位为0的编码规定为-128的补码。补码有符号整数在计算机中默认采用补码最高位表示符号:正数用0,负数用1正数补码:直接表示数值大小(同无符号数)负数补码:将对应正数补码取反加1105补码01101001B-105补码01101001B取反110010110B110010111B8位二进制补码表示的数值范围:-128+12716位二进制补码表示的数值范围:-215+215-132位二进制补码表示的数值范围:-231+231-

14、1为什么是补码负数求补负数真值“取反加1”得机器数补码负数补码“取反加1”得到负数真值补码:11100000B真值:-(11100000求反1)-(00011111+1) -00100000-25-32负数求补运算,等效于用带借位的0作减法真值:-8,补码:-8补码00H-08HF8H补码:,真值:-(00H-F8H)-08H-8用十六进制表达和运算,方便!加法规则:X+Y补码 = X补码 + Y补码减法规则:X-Y补码 = X补码 + -Y补码 补码减法可转换为补码加法 64(-46) 180100 00001101 00100001 0010例:补码的加法和减法十六进制数的加减运算二进制和

15、十六进制数之间具有对应关系整数从左向右小数从右向左每4个二进制位对应一个十六进制位00111010B3AH,F2H11110010B十六进制数的加减运算类似十进制逢16进位1,借1当1623D9H94BEHB897HA59FH62B8H42E7H型号字长主频MHz数据总线宽度外部数据总线地址总线宽度寻址空间cache8086164.771616201M无8088164.77168201M无802861662016162416M无803863212.5333232324G有(很少)8048632251003232324G8KBP532601666464324G16KBP6(PRO)3215020

16、064643664G16KB256K(二级)P3223333364643664G32KB512K(二级)主存空间的分配PC机最低1MB主存系统RAM区地址最低端的640KB空间由DOS进行管理显示RAM区128KB主存空间保留给显示缓冲存储区显示RAM区并没有被完全使用扩展ROM区I/O接口电路卡上的ROM系统ROM区ROM-BIOS程序1.5 8086微处理器微处理器是微机的硬件核心,主要包含指令执行的运算和控制部件,还有多种寄存器对程序员来说,微处理器抽象为以名称存取的寄存器8086内部结构有两个功能模块,完成一条指令的取指和执行功能 总线接口单元BIU:负责读取指令和操作数 执行单元EU

17、 :负责指令译码和执行 算术和逻辑运算单元ALU8086的内部结构内部暂存器 IP ES SS DS CS输入/输出控制电路外部总线执行部分控制电路1 2 3 4 5 6ALU标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器地址加法器指令队列缓冲器执行部件 (EU)总线接口部件 (BIU)16位20位16位8位8086/8088 CPU的结构AH ALBH BLCH CLDH DLBPSPSIDI 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制CSSSDSESIP内部通信寄存器 指令队列ALU总线8086/8088总线执行单元(EU)总线

18、接口单元(BIU) 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存8086/8088 CPU的结构ALBLAHBHCLCHDLDHBPSPSIDICSSSDSESIP内部通信寄存器 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存8086/8088 CPU的结构ALBLAHBHCLCHDLDHBPSPSIDICSSSDSESIP内部通信寄存器 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存8086/8088 CPU的结构ALBLAHBHCLCHDLDHBPSPSIDICSSSD

19、SESIP内部通信寄存器 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存8086/8088 CPU的结构ALBLAHBHCLCHDLDHBPSPSIDICSSSDSESIP内部通信寄存器 指 令 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存8086/8088 CPU的结构 指 令ALBLAHBHCLCHDLDHBPSPSIDICSSSDSESIP内部通信寄存器 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存8086/8088 CPU的结构 指 令ALBLAHBHCLCHDL

20、DHBPSPSIDICSSSDSESIP内部通信寄存器 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存8086/8088 CPU的结构 指 令ALBLAHBHCLCHDLDHBPSPSIDICSSSDSESIP内部通信寄存器 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存ADD AL,0001H 指 令ALBLAHBHCLCHDLDHBPSPSIDICSSSDSESIP内部通信寄存器8086/8088 CPU的结构 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存ADD AL,0001H 指 令ALBLAHBHCLCHDLDHBPSPSIDICSSSDSESIP内部通信寄存器0001H8086/8088 CPU的结构 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存ADD AL,0001H 指 令ALBLAHBHCLCHDLDHBPSPSIDICSSSDSESIP内部通信寄存器0001H8086/8088 CPU的结构 暂存寄存器 ALU F EU控制逻辑 地址形成 和 总线控制 指令队列ALU总线内 存ADD AL,0001H 指 令ALBLAHBHCLCHDLDHBPSPSIDICSSSDSES

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论