汇编语言程序设计.ppt

上传人:创****公 文档编号:1656506 上传时间:2019-10-21 格式:PPT 页数:33 大小:1.23MB
返回 下载 相关 举报
汇编语言程序设计.ppt_第1页
第1页 / 共33页
汇编语言程序设计.ppt_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计.ppt(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Ch1 基础知识,1,IBMPC汇编语言程序设计(第二版),主讲 李敬兆,Ch1 基础知识,2,计算机语言的发展,机器语言,FORTRANBASICCOBOLPASCALC/C+JAVA.,Ch1 基础知识,3,计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称为目标程序。,机器语言,Ch1 基础知识,4,为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作

2、数的存放地址等,这样就形成了汇编语言。所以汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算机语言。 用汇编语言编写的程序称为汇编源程序。 汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,汇编语言源程序要翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编”,这种把汇编源程序翻译成目标程序的语言加工程序称为汇编程序。,汇编语言,Ch1 基础知识,5,汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。目前广泛应用的高级语

3、言有多种,如BASIC、FORTRAN、PASCAL、C、C+等等。,高级语言,汇编语言的特点 面向机器的低级语言,通常是为特定的计算 机或计算机系列专门设计的。 保持了机器语言的优点,具有直接和简捷 的特点。 可有效地访问、控制计算机的各种硬件设备, 如磁盘、存储器、CPU、I/O端口等。 目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。 经常与高级语言配合使用,应用十分广泛。,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,#include stdafx.h #include stdio.h int main(int argc, char* argv) int a,b,c

4、; a=1; b=2; c=a+b; printf(“c=%dn,c); return 0; ,编程实现 c =a+b,并在屏幕上显示出结果。,例1,编译后的目标文件达到3.59KB,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,data segmenta db ?b db ?c db ?string db c=$data endscode segmentmain proc far assume cs:code, ds:data, es:datastart: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax,mov a,1

5、 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh int 21h retmain endpcode ends end start,例 2. C = a + b,汇编后的目标文件只有208字节,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,建议 充分注意“汇编”课实践性强的特点, 多读程序,多写程序,多上机调试程序, 熟悉PC机的编程结构, 掌握汇编语言及其程序设计的基本概

6、念、方法和技巧。,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,第1章 基 础 知 识, 数制 数制之间的转换 运算 数和字符的表示,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,预 备 知 识,存储容量1K = 1024B = 210 (Kilo) 1M = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga)1个二进制位:bit (比特)8个二进制位:Byte (字节) 1Byte = 8bit2个字节: Word (字) 1Word = 2Byte = 16bit,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,1.1.1 数 制,二进制:

7、 基数为2,逢二进一 11012 = 12 3 + 12 2 + 12 0 = 1310十六进制:基数为16,逢十六进一 1001, 0001, 1000, 0111 9 1 8 7 = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 0,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,1. 1 数 制与转换,Ch1 基础知识,13,任何进制的数都可用如下方法表示: N = Ki * ri 其中:Ki 是任一个数码; ri是各位对应的权 r 是基数,1.1.2 数制之间的转换,二进制 十六进制 十进制 二进制 十进制 十六进制,降幂法 除法,安徽理工大学 计算机科学与技术系

8、 李敬兆 汇编语言, 二进制 十六进制 0011 0101 1011 1111 3 5 B F 0011,0101,1011,1111B = 35BFH A 1 9 C 1010 0001 1001 1100 A19CH = 1010,0001,1001,1100B,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,Ch1 基础知识,16,十六进制和二进制的相互转换,方法:对于二进制整数,只要从右到左每4位组成一组,不足4位最左边补0,即可得到相应的十六进制。对于二进制小数,只要从左到右每4位组成一组,不足4位最右边补0,即可得到相应的十六进制。 0 111 1101. 0101 11 0

9、0 7 D 5 C (1111101.0101111)2 = (7D.5C)16 如果将十六进制转成二进制数,只要每一位十六进制数用四位二进制数表示即可。,补0,补0,降幂法 除法 例: 27D = ? B 27 11 3 3 1 - - - - 2n 16 8 4 2 1 1 1 0 1 1 27D = 11011B,二进制 十进制,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言, 二进制 十进制,1011B = 23+21+20=11D,二进制 十进制,Ch1 基础知识,18,十进制转换成二进制,方法:对于整数部分除2取余法,小数部分采用乘2取整法例:117.8125D =,11101

10、01.1101B, 十六进制 十进制 BF3CH = 11163 +15162 +3161 +12160 = 48956D 降幂法 除法 例:399D = ? H 399 143 15 399/1624/161/16 0 - - - 16n 256 16 1 F 8 1 1 8 F 399D = 18FH,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,二进制数:逢二进一 借一为二 加法规则 乘法规则 0 + 0 = 0 0 0 = 0 0 + 1 = 1 0 1 = 0 1 + 0 = 1 1 0 = 0 1 + 1 = 0 (进位1) 1 1 = 1,1.2 运算(算术运算),安徽理工

11、大学 计算机科学与技术系 李敬兆 汇编语言,0 5 C 3 H3 D 2 5 H4 2 E 8 H,3 D 2 5 H0 5 C 3 H3 7 6 2 H,1,1,十六进制数:逢十六进一 借一为十六,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,1.3 计算机中数和字符的表示, 计算机中正负数的表示,7 6 5 4 3 2 1 0,符号位 数值位,假设机器字长为16位:,符号位 = 0 正数 数值位 = 1 负数,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,假设机器字长为8位:,H.O.Byte,L.O.Byte,安徽理工大学 计算机科学与技术系 李敬兆

12、汇编语言,数的常用表示法 原码 反码 补码原码表示法:符号 + 绝对值例:n = 8bit +3原码 = 0 000,0011 = 03H - 3原码 = 1 000,0011 = 83H +0原码 = 0 000,0000 = 00H - 0原码 = 1 000,0000 = 80H 0 的表示不惟一反码表示法:正数的反码同原码,负数的反码数值位与原码相反例:n = 8bit +5反码 = 0 000,0101 = 05H - 5反码 = 1 111,1010 = FAH +0反码 = 0 000,0000 = 00H - 0反码 = 1 111,1111 = FFH 0 的表示不惟一,安徽

13、理工大学 计算机科学与技术系 李敬兆 汇编语言,补码(Twos Complement)表示法:正数的补码: 同原码负数的补码:(1)写出与该负数相对应的正数的补码 (2)按位求反 (3)末位加一,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,n位二进制补码的表数范围: - 2n-1 N 2n-1-1,无符号整数的表数范围: 0 N 2n-1,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,补码的加法和减法:求补运算 :对一个二进制数按位求反、末位加一 求补 求补 X补码 -X补码 X补码加法规则:X+Y补码 = X补码 + Y补码减法规则:X-Y补码 = X补码 + -Y补码 补码减

14、法可转换为补码加法,64(-46) 18,0100 00001101 00100001 0010,例:,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,进位和溢出进位: 由于运算结果超出了位数,最高有效位向前的进位,这一位自然丢失,一般不表示结果的对错。溢出:表示结果超出了字长允许表示的范围, 一般会造成结果出错。例: (64) 11000000 127 01111111 64 01000000 + 1 00000001 0 1 00000000 128 10000000 进位 溢出,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言, 字符的表示ASCII码: 用一个字节来表示一个字符,

15、低7位为字符的ASCII值,最高位一般用作校验位。 例: A 41H a 61H 1 31H 换行 0AH 回车 0DH 空格 20H,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,Ch1 基础知识,29,BCD码 BCD(Binary-Coded Decimal)码又称为“二十进制编码”,专门解决用二进制数表示十进数的问题。最常用的是8421编码,其方法是用4位二进制数表示1位十进制数,自左至右每一位对应的位权是8、4、2、1。,Ch1 基础知识,30,BCD码有两种格式:(1)压缩BCD码格式(Packed BCD Format) 用4个二进制位表示一个十进制位,就是用0000B-1

16、001B来表示十进制数0-9。例如:十进制数4256的压缩BCD码表示为:0100 0010 0101 0110 B(2)非压缩BCD码格式(Unpacked BCD Format) 用8个二进制位表示一个十进制位,其中,高四位无意义,我们一般用xxxx表示,低四位和压缩BCD码相同。 例如:十进制数4256的非压缩BCD码表示为: xxxx0100 xxxx0010 xxxx0101 xxxx0110 B,1.4 逻辑运算(按位操作),“与”运算(AND) “或”运算(OR) A B AB A B AB 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1

17、1 1“非”运算(NOT) “异或”运算(XOR) A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,例:X=00FFH Y=5555H,求Z=XY= ? X= 0000 0000 1111 1111 B Y= 0101 0101 0101 0101 B Z= 0101 0101 1010 1010 B Z=55AAH,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,第1章作业,Page 14 1.2 (1) 、 (3) 1.3 (1) 、 (3) 1.5 (1) 、 (3) 、 (5) 1.8,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 校园应用

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com