已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ch1 基础知识,1,IBMPC汇编语言 程序设计(第二版),主讲 李敬兆,Ch1 基础知识,2,计算机语言的发展,机器语言,FORTRAN BASIC COBOL PASCAL C/C+ JAVA .,Ch1 基础知识,3,计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。 用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,所以,机器语言程序被称为目标程序。,机器语言,Ch1 基础知识,4,为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。所以汇编语言是一种用符号书写的、基本操作与机器指令相对应的、并遵循一定语法规则的计算机语言。 用汇编语言编写的程序称为汇编源程序。 汇编语言是一种符号语言,比机器语言容易理解和掌握,也容易调试和维护。但是,汇编语言源程序要翻译成机器语言程序才可以由计算机执行。这个翻译的过程称为“汇编”,这种把汇编源程序翻译成目标程序的语言加工程序称为汇编程序。,汇编语言,Ch1 基础知识,5,汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。 目前广泛应用的高级语言有多种,如BASIC、FORTRAN、PASCAL、C、C+等等。,高级语言,汇编语言的特点 面向机器的低级语言,通常是为特定的计算 机或计算机系列专门设计的。 保持了机器语言的优点,具有直接和简捷 的特点。 可有效地访问、控制计算机的各种硬件设备, 如磁盘、存储器、CPU、I/O端口等。 目标代码简短,占用内存少,执行速度快, 是高效的程序设计语言。 经常与高级语言配合使用,应用十分广泛。,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,#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+b,并在屏幕上显示出结果。,例1,编译后的目标文件达到3.59KB,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,data segment a db ? b db ? c db ? string db c=$ data ends code segment main proc far assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax,mov a,1 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 ret main endp code ends end start,例 2. C = a + b,汇编后的目标文件只有208字节,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,建议 充分注意“汇编”课实践性强的特点, 多读程序,多写程序,多上机调试程序, 熟悉PC机的编程结构, 掌握汇编语言及其程序设计的基本概 念、方法和技巧。,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,第1章 基 础 知 识, 数制 数制之间的转换 运算 数和字符的表示,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,预 备 知 识,存储容量 1K = 1024B = 210 (Kilo) 1M = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga) 1个二进制位:bit (比特) 8个二进制位:Byte (字节) 1Byte = 8bit 2个字节: Word (字) 1Word = 2Byte = 16bit,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,1.1.1 数 制,二进制: 基数为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 数制之间的转换,二进制 十六进制 十进制 二进制 十进制 十六进制,降幂法 除法,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言, 二进制 十六进制 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 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 =,1110101.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 运算(算术运算),安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,0 5 C 3 H 3 D 2 5 H 4 2 E 8 H,3 D 2 5 H 0 5 C 3 H 3 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,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,数的常用表示法 原码 反码 补码 原码表示法:符号 + 绝对值 例: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 的表示不惟一,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,补码(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补码 补码减法可转换为补码加法,64 (-46) 18,0100 0000 1101 0010 0001 0010,例:,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言,进位和溢出 进位: 由于运算结果超出了位数,最高有效位向前的进位,这一位自然丢失,一般不表示结果的对错。 溢出:表示结果超出了字长允许表示的范围, 一般会造成结果出错。 例: (64) 11000000 127 01111111 64 01000000 + 1 00000001 0 1 00000000 128 10000000 进位 溢出,安徽理工大学 计算机科学与技术系 李敬兆 汇编语言, 字符的表示 ASCII码: 用一个字节来表示一个字符,低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-1001B来表示十进制数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 1 1 “非”运算(NOT) “异或”运算(XOR) A A A B AB 0 1 0 0 0 1 0 0 1 1 1 0 1 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026营销策划总监面试题及答案
- 2026幼儿园待聘面试题及答案
- 2026区块链数据交易行业市场供需对比分析及投资实体方案
- (2026年)学校电路电器安全管理制度
- 个人引文报告模版(3篇)
- 2026青岛啤酒生产线节能环保的技术改造的实施效果及经济效益研究方案
- 2026中国药品市场传播咨询服务行业市场供需分析及投资评估规划分析研究报告
- 2026中国物流设备行业市场全面考察及发展趋势与投资前景研判研究报告
- 2026中国体育场馆租赁市场供需管理创新及投资未来发展布局报告
- 安康市宁陕县2027届数学四上期末综合测试试题含解析
- 2026年公务员考试公共基础知识法律常识试题库及答案
- 2026华为AIFW技术白皮书-华为
- 2026年广东省事业单位招聘考试《职业能力倾向测验》真题
- 2024版部编人教版初中语文古诗汇编(86首)
- 2026年行政执法人员资格考试必考重点知识题库及答案
- 电网、设备、作业三大风险联动管控机制的建立与运行
- 表4企业养老保险遗属待遇申领表
- JT∕T 917.2-2014 道路运输驾驶员技能和素质要求 第2部分:货物运输驾驶员
- QCT1170-2022汽车玻璃用功能膜
- 府谷县起龙煤矿矿山地质环境保护与土地复垦方案
- 达罗他胺片-临床用药解读
评论
0/150
提交评论