第1章汇编语言基础知识_1.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章教学重点第1章是用汇编语言进行程序设计所需要了解的基本知识。在课堂上,我们重点掌握几个内容:PC机软硬件系统认识汇编语言基础:熟悉8086寄存器组难点:各种寻址方式第1章微机系统组成硬件(Hardware)控制器、运算器存储器输入设备和输出设备软件(Software)系统软件应用软件第1章微机系统组成框图I/O接口主存储器系统总线CPU寄存器控制器运算器辅助存储器输入设备输出设备第1章16/32位PC机本课程采用16位或32位个人计算机16位PC机是指采用16位80x86CPU的IBMPC/XT/AT这三款个人微机或它们的兼容机。32位PC机是指采用32位80x86CPU而形成的微机,其基本结构仍然源于PC/AT机。人们日常谈论的PC机或微机是上述微型计算机系统的统称。第1章微机的硬件中央处理单元CPU(Intel80x86)对汇编语言程序员,最关心其中的寄存器存储器(主存储器)呈现给汇编语言程序员的,是存储器地址外部设备(接口电路)汇编语言程序员看到的是端口(I/O地址)第1章微机的软件系统软件:DOS平台MS-DOS6.22Windows9.x的DOS实地址方式MS-DOS虚拟环境应用软件:开发汇编语言程序涉及文本编辑器汇编程序连接程序调试程序集成化开发环境第1章什么是汇编语言(1)汇编语言是一种面向机器的低级程序设计语言汇编语言以助记符形式表示每一条计算机指令助记符(mnemonic)是便于人们记忆、并能描述指令功能和指令操作数的符号助记符一般就是表明指令功能的英语单词或其缩写第1章什么是汇编语言(2)用助记符表示的指令就是汇编语言中的汇编格式指令汇编格式指令以及使用它们编写程序的规则就形成汇编语言(AssemblyLanguage)用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序(.ASM)汇编程序将汇编语言源程序“汇编”成机器代码目标模块(.OBJ)第1章什么是汇编语言(3)汇编语言的主要特点:汇编语言程序与处理器指令系统密切相关程序员可直接、有效地控制系统硬件形成的可执行文件运行速度快、占用主存容量少汇编语言程序与汇编程序是两个概念第1章汇编语言和高级语言(1)汇编语言与处理器密切相关↘汇编语言程序的通用性、可移植性较差高级语言与具体计算机无关↗高级语言程序可以在多种计算机上编译后执行汇编语言:×高级语言:√第1章汇编语言和高级语言(2)汇编语言功能有限、涉及硬件细节↘编写程序比较繁琐,调试起来也比较困难高级语言提供了强大的功能,不必关心琐碎问题,如内存分配,寄存器使用等。↗类似自然语言的语法,易于掌握和应用汇编语言:×高级语言:√第1章汇编语言和高级语言(3)汇编语言本质上就是机器语言↗可以直接、有效地控制计算机硬件↗易于产生速度快、容量小的高效率目标程序高级语言不针对具体计算机系统↘不易直接控制计算机的各种操作↘目标程序比较庞大、运行速度较慢汇编语言:√高级语言:×第1章汇编语言和高级语言(4)汇编语言的优点:直接控制计算机硬件部件可以编写在“时间”和“空间”两方面最有效的程序汇编语言的缺点:与处理器密切有关需要熟悉计算机硬件系统、考虑许多细节编写繁琐,调试、维护、交流和移植困难汇编语言:?高级语言:?第1章汇编语言和高级语言(5)汇编语言的优点使得它在程序设计中占有重要的位置,是不可被取代的汇编语言的缺点使得人们主要采用高级语言进行程序开发工作有时需要采用高级语言和汇编语言混合编程的方法,互相取长补短,更好地解决实际问题混合编程取长补短第1章汇编语言的应用场合程序要具有较快的执行时间,或者只能占用较小的存储容量程序与计算机硬件密切相关,程序可直接、有效地控制硬件大型软件需要提高性能、优化处理的部分没有合适的高级语言、或只能采用汇编语言的时候分析具体系统尤其是该系统的底层软件、加密解密软件、分析和防治计算机病毒等等汇编语言的作用实在不小!第1章数据表示—十进制数1.十进制(D)在生活中人们习惯的是十进制,所谓十进制就是“逢十进一”。2.十进制的基数基数:某数制所使用的代码个数称为该数制的基数。十进制共使用十个代码:0、1、……、8、9,所以十进制的基数是“10”。3.十进制的权权:对于多位数,某位上的一个“1”所表示的数值大小称为该位的权。十进制的权为:、……、、、等。4.十进制数的组成任何一个十进制数都是上述十个代码的组合,否则就不是十进制数。任何一个十进制数都可以按权展开,其值由各代码和该代码所在位的权共同决定。如:5728510710210810321010n102101100第1章数据表示—二进制数1.二进制(B)是计算机中使用的计数制,所谓二进制就是“逢二进一”。2.二进制的基数二进制共使用两个代码:0、1,所以二进制的基数是“2”。3.二进制的权、、……、、。4.二进制数的组成任何一个二进制数都是上述二个代码的组合,否则就不是二进制数。任何一个二进制数都可以按权展开,其值由各代码和该代码所在位的权共同决定。如:2n21n2221201100100121202021202026543210222652第1章数据表示—十六进制数1.十六进制(H)也是计算机中使用的计数制,所谓十六进制就是“逢十六进一”。2.十六进制的基数十六进制共使用十六个代码:0、1、……、9、A、B、C、D、E、F,所以十六进制的基数是“16”。3.十六进制的权、、……、、。4.十六进制数的组成任何一个十六进制数都是上述十六个代码的组合,否则就不是十六进制数。任何一个十六进制数都可以按权展开,其值由各代码和该代码所在位权共同决定。如:16n161n16216116057516716121613163210CD第1章数据表示—数制的转换1.十进制数转换为N进制数⑴十进制整数转换为N进制整数:除“N”取余法⑵十进制小数转换为N进制小数:乘“N”取整法⑶混合数的转换:以小数点连接2.N进制数转换为十进制数按权展开合并3.二进制数转换为十六进制数:以小数点为界分组合并4.十六进制数转换为二进制数:以小数点为界按位展开第1章数据表示—数码对照表二进制数十进制数十六进制数000000000111001022001133010044010155011066011177100088100199101010A101111B110012C110113D111014E111115F第1章数据表示—数的编码由于计算机只认识二进制数,所以,任何符号都必须转换为二进制码才能为计算机所认识与处理,这就是二进制编码。十进制数的二进制数编码——BCD码(1)编码规则:用四位二进制码来表示一位十进制码。(2)进位制:十进制。如:(1998.8)10=(0001100110011000.1000)BCD(3)非组合型BCD码(4)组合型BCD码第1章数据表示—字符的编码字符与字母的编码——ASCII码用7位二进制码来表示一个字符,加上bit7为“0”,一个字符的ASCII码刚好用一个8位二进制数来表示,即一个字节。如:0~9:00110000~00111001,即30H~39Ha~z:01100001~01111010,即61H~7AHA~Z:01000001~01011010,即41H~5AH空格:20H回车:0DH换行:0AH第1章数据表示—机器数与真值前面提到的二进制数都是不带符号的,但是数显然有正负,那么在计算机中数的正负是怎样来表示的呢?本节我们来讲述这个问题。1.机器数对于一个以字节、字、双字、四字表示的二进制数,如果将最高位作为该数的符号位,则这个数称为机器数。通常,最高位为“1”表示该数为负数;最高位为“0”表示该数为正数。在后面的讲述中,我们以一个字节表示的数为例给大家讲解。2.真值机器数的数值称为真值,可以用带符号的二进制数或十进制数表示。第1章数据表示—机器数的表示1.原码⑴正数原码最高位为符号位“0”,其余位为数值位,即为该机器数的真值。⑵负数原码最高位为符号位“1”,其余位为数值位,即为该机器数的真值。如:【+1010】原码=00001010【-1010】原码=10001010【00001100】真值=+1100【10001100】真值=-1100取值范围:11111111~01111111(即-127~+127)第1章数据表示—机器数的表示2.反码⑴正数反码最高位为符号位“0”,其余位为数值位(与原码相同)。⑵负数反码最高位为符号位“1”,其余位为数值位按位取反。如:【+1010】反码=00001010【-1010】反码=11110101【00001100】真值=+1100【10001100】真值=-1110011取值范围:10000000~01111111(即-127~+127)第1章数据表示—机器数的表示3.补码⑴正数补码最高位为符号位“0”,其余位为数值位(与原码相同)。⑵负数补码最高位为符号位“1”,其余位为数值位按位取反再末位加“1”。如:【+1010】补码=00001010【-1010】补码=11110110【00001100】真值=+1100【10001100】真值=-1110100取值范围:10000000~01111111(即-128~+127)第1章数据表示—补码加法公式【X+Y】补码=【X】补码+【Y】补码【X-Y】补码=【X】补码+【-Y】补码例1.68-10=?∵【68-10】补码=【68】补码+【-10】补码=01000100+11110110=00111010(补码)∴68-10=58例2.10-68=?∵【10-68】补码=【10】补码+【-68】补码=00001010+10111100=11000110(补码)∴10-68=-58

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功