汇编语言1-2.ppt_第1页
汇编语言1-2.ppt_第2页
汇编语言1-2.ppt_第3页
汇编语言1-2.ppt_第4页
汇编语言1-2.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第 1 章,哈尔滨工业大学计算机学院 硬件基础教研室 方连众,教学重点,第1章是用汇编语言进行程序设计所需要了解的基本知识。在课堂上,我们重点掌握几个内容: PC机软硬件系统 认识汇编语言 基础是熟悉寄存器组 难点是各种寻址方式,1.1计算机系统概述,硬件(Hardware) 控制器、运算器 存储器 输入设备和输出设备 软件(Software) 系统软件 应用软件,微机系统组成图,16/32位PC机,本课程采用16位或32位个人计算机 16位PC机是指采用16位80 x86 CPU的IBM PC/XT/AT这三款个人微机或它们的兼容机。 32位PC机是指采用32位80 x86 CPU而形成的微

2、机,其基本结构仍然源于PC/AT机。 人们日常谈论的PC机或微机是上述微型计算机系统的统称。,微机的硬件,中央处理单元 CPU(Intel 80 x86) 对汇编语言程序员,最关心其中的寄存器 存储器(主存储器) 呈现给汇编语言程序员的,是存储器地址 外部设备(接口电路) 汇编语言程序员看到的是端口(I/O地址),寄存器(Register),寄存器是CPU内部的高速存储单元 它们为处理器提供各种操作所需要的数据或地址等信息 汇编语言程序采用它们各自的符号名 例如,在Intel 8086/8088 CPU中有 AXBXCXDX SIDIBPSP,存储器地址(Address),存储器是由大量存储单

3、元组成。为了区别每个单元,我们将它们编号,这个编号就是存储器地址。 存储器地址是存储器中存储单元的编号 微机的每个存储单元存放一个字节量的数据 一个字节B(Byte)包含了8个二进制位b(bit) 通常采用十六进制数来表达地址 Intel 8086具有1兆字节(1MB)存储器容量 其存储器地址可以表示为:00000H FFFFFH 其中大写H(或小写h)表示是16进制数,端口(Port),对程序员来说,I/O接口电路由接口寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址。 端口就是指I/O地址,是微机系统对I/O接口电路中与程序设计有关的寄存器的编号 系统实际上就是通过这些端口与

4、外设进行通讯的 通常采用十六进制数来表达端口 Intel 8086支持64K个8位端口 其I/O地址可以表示为:0000H FFFFH,微机的软件,系统软件:DOS平台 MS-DOS 6.22 Windows 9.x的DOS实地址方式 MS-DOS虚拟环境 应用软件:开发汇编语言程序涉及 文本编辑器 汇编程序 连接程序 调试程序 集成化开发环境,文本编辑器(Editor),文本编辑器用于编辑无任何格式的文档 程序设计时要采用文本编辑器编写源程序 常见的文本编辑软件有很多,如 MS-DOS的EDIT全屏幕编辑器 Windows的Notepad计事本 程序开发系统中的程序编辑器,例如你熟悉的Tur

5、bo C编辑器 MASM集成开发环境PWB的编辑器 大家可以采用微机中任何一个文本编辑器编写汇编语言源程序,汇编程序(Assembler),汇编程序将汇编语言源程序翻译(称为“汇编”)成机器代码目标模块 80 x86CPU的汇编程序主要有微软的宏汇编程序MASM。较著名的还有Borland公司的TASM,无实质差别 本课程采用微软的MASM 6.11 这是MASM的最后一个独立版本 可免费升级为MASM 6.14(支持奔腾3) 也可升级为MASM 6.15(支持奔腾4),连接程序(Linker),连接程序将汇编后的目标模块转换为可执行程序 每个程序开发环境都有连接程序 连接程序的文件名通常是:

6、 LINK.EXE,调试程序(Debugger),调试程序进行程序排错、分析等 本课程采用DOS的DEBUG程序 MASM采用CodeView 其他还有Turbo Debugger等,集成化开发环境,集成开发环境是进行程序设计所用到的各种软件的有机集合。其中,有文本编辑器,有语言翻译程序,有连接程序,还组合有调试程序等。 大型的程序设计项目往往要借助这种集成开发环境,也就是软件开发工具(包)。 MASM的程序员工作平台PWB是集编辑、汇编、连接和调试为一体的综合开发环境。,什么是汇编语言(1),汇编语言是一种面向机器的低级程序设计语言 汇编语言以助记符形式表示每一条计算机指令 助记符(mnem

7、onic)是便于人们记忆、并能描述指令功能和指令操作数的符号 助记符一般就是表明指令功能的英语单词或其缩写,什么是汇编语言(2),用助记符表示的指令就是汇编语言中的汇编格式指令 汇编格式指令以及使用它们编写程序的规则就形成汇编语言(Assembly Language) 用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序(.ASM) 汇编程序将汇编语言程序“汇编”成机器代码目标模块(.OBJ),什么是汇编语言(3),汇编语言的主要特点: 汇编语言程序与处理器指令系统密切相关 程序员可直接、有效地控制系统硬件 形成的可执行文件运行速度快、占用主存容量少,汇编语言程序与汇编程序是两个概念,汇编

8、语言和高级语言(1),汇编语言与处理器密切相关 汇编语言程序的通用性、可移植性较差 高级语言与具体计算机无关 高级语言程序可以在多种计算机上编译后执行,汇编语言和高级语言(2),汇编语言功能有限、涉及硬件细节 编写程序比较繁琐,调试起来也比较困难 高级语言提供了强大的功能,不必关心琐碎问题 类似自然语言的语法,易于掌握和应用,汇编语言和高级语言(3),汇编语言本质上就是机器语言 可以直接、有效地控制计算机硬件 易于产生速度快、容量小的高效率目标程序 高级语言不针对具体计算机系统 不易直接控制计算机的各种操作 目标程序比较庞大、运行速度较慢,汇编语言和高级语言(4),汇编语言的优点: 直接控制计

9、算机硬件部件 可以编写在“时间”和“空间”两方面最有效的程序 汇编语言的缺点: 与处理器密切有关 需要熟悉计算机硬件系统、考虑许多细节 编写繁琐,调试、维护、交流和移植困难,汇编语言和高级语言(5),汇编语言的优点使得它在程序设计中占有重要的位置,是不可被取代的 汇编语言的缺点使得人们主要采用高级语言进行程序开发工作 有时需要采用高级语言和汇编语言混合编程的方法,互相取长补短,更好地解决实际问题,汇编语言的应用场合,程序要具有较快的执行时间,或者只能占用较小的存储容量 程序与计算机硬件密切相关,程序要直接、有效地控制硬件 大型软件需要提高性能、优化处理的部分 没有合适的高级语言、或只能采用汇编

10、语言的时候 分析具体系统尤其是该系统的低层软件、加密解密软件、分析和防治计算机病毒等等,汇编语言的作用实在不小 !,微处理器飞速发展,80386,80486,奔腾,奔腾2代,奔腾4代,80286,8086,奔腾3代,IA-64 (安腾),4004,不是我不明白, 这世界变化太快。 扎扎实实掌握知识, 以不变应万变!,1.2 数据表示,信息表示与运算概述: 信息的类型:数、字符、算逻运算信息、问题求解(功能、操作等)等-都是数 信息的表示:生活中-10进制 计算机中-2进制 汇编语言-10、16、8、2进制 编码(各种信息的编码) 二进制数 数的转换 数与字符的表示 数的运算,1、二进制数,进制

11、:逢“n”进1 十进制(Decimal) 二进制(Binary) 八进制(Octal System) 十六进制(Hexadecimal System) 12进制、24进制、60进制、30进制、15进制(24节气)、365进制等 进制计数制的概念(二进制) 数码(数字):0 1 权(数位):数码具有的数值、数码的位置 0 1 2 3. 基:数码的个数 2 进位计数制:以基值为进位的计数制 数的通用表示 N= dndn-1dn-2.d1d0 . d-1d-2.d-m 若基值为r, 则N=?,进制在计算机语言中的表示,331.25=331.25D=101001011.01B=513.2O=14B.4

12、H 可见基值越大的进制需要的数位越少 计算机为什么选择了2进制? 两种状态元器件易选 算术运算简单 支持逻辑运算 但阅读、书写复杂-编程语言中用10,16,8进制,2、进制转换,1.各种数制转换为10进制 按权转换法(书上) 基值反复相乘(整数部分)相除(小数部分)法 2. 10进制转换为其他进制 整数部分:基值反复相除法除基取余法 小数部分:基值反复相乘法-乘基取整法 3. 2、8、16进制间的转换 1-3-4位转换法。注意补0,进制运算(+ *),10进制 2进制 16进制,3、数及字符的表示,机器数: 把一个数连同其符号在机器中的表示加以数值化后的数。 机器数的表示: 原码、补码、反码

13、定点数、浮点数 BCD码 校验码、纠错码 ASCII码 汉字编码 数的符号表示:符号位机器数:符号数码化的数 真值:机器数代表的数本身,数及字符的表示,机器数的特点: 字长、范围:计算机的字的概念,4,8,16,32,64 符号数值化,参与运算 小数点按约定方式标出,而不是专门器件。 有符号数、无符号数 c语言,汇编语言等都有 unsigned int 0-65535 int -32767-32767 unsigned char 0-255 char 0-127 字长相同、范围不同,原码、补码、反码(有符号数),把符号“数字化”的数叫机器数,而把带“+”或”-”符号的数叫真值 符号位: 0表示

14、正数 1表示负数,任何码都不变! 7F +127 FF -127,原码,原码:数的最高位是符号位,其余不变。 原码的数学定义: 整数的原码x= 小数的原码x= 0的原码:分+0和-0 的原码 n为机器字长 一定要考虑到字长,数的范围!,反码,反码: 符号位不变,其余取反。 反码的数学定义: 整数的反码x= 小数的反码x= 0的反码:分+0和-0 的反码 n为机器字长,补码,补码: 符号位不变,其余取反加1。 补码的数学定义: 整数的补码x= 小数的补码x= 0的补码: n为机器字长,总结:,正数的码:原码=反码=补码=真值 负数的码:符号位为1,数值部分如下: 原码=真值 反码=真值每位取反

15、补码=真值每位取反+1,课堂练习: 用16进制表示出原反补码(16位机器字长) -100, -127,0,-0.25, 55H, -55H, 128,111,补码、反码的来源和用途,模的概念 目前5点,想拨到9点: 顺时针拨4小时,逆时针拨8小时 模为12 也就是说 +4 与 -8 是等价的。 计算机的减法运算的实现 机器字长为n, 减去x ,与加上2n x 等价 a-x a+ 2n x = a-x + 2n 模的概念经常会用到: % mod,信息编码方式,1.ASCII码:美国标准信息交换码 7位2进制编码: 10个数字、26个小写字母、26个大写字母、34个专用字符、32个通用控制字符。

16、要背诵一些。 用途:计算机系统通用的机内表示。 扩展ascii码:8位,2. 汉字编码:,GB2312-80编码标准:7445个 双字节编码 内码:每个字节首位为1,第一个字节A1-FE,第二个字节A1-FE, 区位码:94区 94位 国标码:区位码,每个字节+32 GB18030大字符集编码:160万 四字节编码 单字节:0-7F 双字节:第一个字节81-FE 第二个字节40-FE(不包括7F) 四字节:第一个字节81-FE 第二个字节30-39 第三个字节81-FE 第二个字节30-39,汉字编码:,汉字输入: 整字大键盘输入:部 阵 书写输入 语音输入 小键盘输入:标准英文键盘输入 20

17、00余种编码方法 拼音输入:。 字形编码:五笔字型、首尾码、。 数字编码:区位码、电报码 输入法软件将其转换为机内码存储和处理 汉字显示: 字模库:硬盘、打印机rom 16*16 24*24 32*32 矢量汉字 ttf汉字 汉字显示也有显示打印软件将其由机内码通过字模库显示和打印出来,4、数的运算,位、字节、字 1bytes=8bits 8086,286: 1word=2bytes =16bits 80386,486、586: 1word=4bytes =32bits itanium(merced): 1word=8bytes=64bits 位多用于数据通讯中传输率:1200bps,100M

18、 字节用于数据存储和传输中,表示数据的规模。 字用于表示计算机cpu中的寄存器位数。,计算机中的数据类型:,字符型(char,可细分) 数值型(value,可分好几类) 逻辑型(boolean,logic):true false 0 1 .t. .f. 日期型 (date, datetime) 字符串型(string, char *,char) 备注型 memo 数组型: int mt10020 集合性: enum 记录型(record)、结构型(struct) 类(class)、包(package) 抽象数据型 自定义型 type def .,每种语言、系统的数据类型可能不一样;同一语言,同一类型在不同的计算机系统中类型表示的数据范围也可能不一样,数值类型,字符型(char,unsig

温馨提示

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

评论

0/150

提交评论