收藏 分销(赏)

汇编语言程序设计1.pptx

上传人:a199****6536 文档编号:4237559 上传时间:2024-08-29 格式:PPTX 页数:67 大小:411.19KB
下载 相关 举报
汇编语言程序设计1.pptx_第1页
第1页 / 共67页
汇编语言程序设计1.pptx_第2页
第2页 / 共67页
汇编语言程序设计1.pptx_第3页
第3页 / 共67页
汇编语言程序设计1.pptx_第4页
第4页 / 共67页
汇编语言程序设计1.pptx_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、IBMPC汇编语言汇编语言程序设计课本:80X86汇编语言程序设计廖开际华南理工大学出版社参考书:IBM-PC汇编语言程序设计沈美明温冬蝉编著清华大学出版社教学安排40学时24学时理论课16学时上机。成绩70%期末成绩30%平时成绩(课堂提问,作业,出勤,做实验,实验报告)前言个人计算机的核心是微处理器,它负责处理计算机在算术运算、逻辑运算和控制方面的需求。(前言)每种处理器系列都有它自己唯一的指令集。这些指令集被称为系统的机器语言。这种指令集非常复杂,在用于程序开发时又令人很难理解。(PREFACE)汇编语言是一种能够代替各种机器指令的更容易理解的符号代码。例如:机器机器 语言语言 汇编语言

2、汇编语言A00020MOVAL,VAR102060120ADDAL,VAR2A20220MOVVAR3,AL(PREFACE)高级语言,例如C语言和BASIC语言,被设计成与特定计算机的技术细节无关的语言,然而,汇编语言作为一种低级语言,它是为专门的处理器系列设计的。使用汇编语言汇编语言的优点优点:占用内存少少,运行快快要求程序员具有高超的技术能力理解底层机器架构底层机器架构(计算机计算机体系结构)常驻程序常驻程序和中断服务程序中断服务程序都是用汇编语言来编写的1.PC硬件的基本特征(1.PC硬件的基本特征)v基本硬件的解释:位,字节,寄存器,内存,处理器和数据总线.v主要的内部硬件:微处理器

3、,内存,寄存器;外部硬件:计算机的输入/输出设备.位和字节计算机存储的基本构造单元是“位位”“位位”的值是“0”和“1”位内容(A):01000001位编号:76543210最低位(位和字节)8个相关的位称为字节字节8个位允许有256(28)个1-0状态的不同组合范围:0255,-128+127相关字节处理器支持的数据大小:字.2-字节(16位)双字.4-字节(32位)四字.8-字节(64位)8字.16-字节(128位)(相关字节)千字节(KB).1KB=1024B(210字节)兆字节(MB).1MB=1024KB(220字节)十亿字节(GB).1GB=1024MB(230字节)(相关字节)在

4、一个字字中,各位从右到左的编号是0到15.位内容(PC):0101000001000011位编号:1514131211109876543210高字节低字节第二位字节第一字节1字=2字节=16位(相关字节)在存储器中,每个字都有唯一的地址第一个字节在最低的存储器单元中,编号为0,第二个字节编号为1,等等。负的二进制数负二进制数是用二进制补码表示法来表示的;表示负二进制数的规则是:逐位求反,末位加1 例子:+6501000001按位求反10111110加11数-6510111111(负二进制数)为了求得一个负二进制数的绝对值,需要采用二进制补码规则:例子:-6510111111按位求反010000

5、00加11数+6501000001(负二进制数)减法减去减去一个二进制数=加该数的二进制的补码+6501000001+(-65)1011111100(1)00000000有数字进入符号位,并且溢出,结果是正确的。十六进制表示二进制11111110110111001011101010011000十进制15141312111098十六进制FEDCBA98二进制01110110010101000011001000010000十进制76543210十六进制76543210为了在程序中指明用十六进制数,在这个数的后面写上一个“H”ASCII码为了使数据表示标准化,微计算机设计人员采用ASCII(美国标准

6、信息交换码);它使不同计算机之间的数据交换更加方便。(ASCII码)8位ASCII码可以提供256个字符(附录B),包括外国得字母符号在内。例子:01000001(hex41)表示字母A.PC组成计算机结构如下图所示:内部总线处理器总线输入/输出存储器80286系统80386RAM80486屏幕ROM80586打印机Pentium键盘处理器PC的大脑是处理器,用来完成所有的指令执行和数据处理。各种处理器的速度,寻址空间大小,寄存器以及数据总线是不相同的。数据总线在处理器,存储器和外设之间传输数据执行部件和总线接口部件处理器划分为两个逻辑部件:执行部件(EU)和总线接口部件(BIU)。1)构造2

7、)功能:执行部件执行指令.总线接口部件把指令和数据传送给执行部件3)并行工作总线接口部件保持领先一步内存储器在PC中有两种类型的内存储器:随机存取存储器(RAM),在之后课程中,统一称RAM为“内存”。只读存储器(ROM),因为指令和数据是永久性地“烧进”芯片中的,所以,它们不能被修改。(内存储器)字节在内存中被连续地编号,从00开始,所以,内存中的每个位置都有唯一的地址。(XMS)扩展内存扩展内存(100000H)系统空间384K=128+192+64(A0000FFFFFH)(TPA)临时程序空间临时程序空间640K(00000A0000H)Figure1-个人计算机内存第一个第一个1MB

8、内存是实存储内存是实存储器器(内存储器)内存会一直保持其中的内容,直到有新的内容载入。计算机中的地址是用二进制来表示的,也可以方便地写成十六进制。内存中数据寻址系统在内存中存储数据,处理器从内存中按字进行检索:低内存地址中内容放在低字节高内存地址中内容放在高字节(内存中数据寻址)例子:处理器自动把0529H传送到地址7612H和7613H的地址中7612H字节内容:内容地址(7612H)=29H057613H字的内容由低地址所表示297612H(7612H)=0529H内存(内存中数据寻址)内存用来存储程序指令和数据存储内存地址中的具体信息被称为内存地址的内容例如:(00004H)=34H;字

9、节内容是34H(00004H)=1234H;字的内容(01234H)=2F1EH01237H01237H01236H01236H01235H 2FH01235H 2FH01234H 1EH01234H 1EH00007H00007H00006H00006H00005H 12H00005H 12H00004H00004H34H34H00003H00003H00002H00002H00001H00001H00000H00000HAddresscontentI/O端口和I/O地址空间在每个外设中,都有数据寄存器,状态寄存器,指令寄存器等各类的寄存器。I/O地址空间是对外部设备的寄存器的一种编码,旨在

10、方便处理器访问这些寄存器(I/O地址空间)外设的寄存器编码就是外设的寄存器编码就是端口地址端口地址。I/O是独立于内存的地址空间的。是独立于内存的地址空间的。IBM-PCI/O空间是64K(0000HFFFFH),因此,计算机可以访问64k的不同的8位I/O设备。(I/O地址空间)操作系统把复杂的外设操作封装成例行程序,因此,用户可以通过调用中断指令(INT)来运行例行程序(DOS或者BIOS)。段与寻址问题:怎样用16位数字来寻址1MB的空间?(SEGMENTANDADDRESSING)答案:15016位段起始地址0000150+16位偏移地址19020位物理地址(段与寻址)物理地址=10H

11、*段地址+偏移地址(段与寻址)段是在程序中定义的一个专门的区域,从段边界开始能被16或者hex10除尽的单元。段能够位于存储器的几乎所有地方,大小可变,在实模式下可以多达64KB(0000H-FFFFH)。如果代码(数据或者堆栈)区域需要大于64K的空间,那么,就需要在程序中定义一个以上的代码段(数据或者堆栈)(段与寻址)三个主要的段分别是代码断,数据段和堆栈段。代码断代码断(CS)包括要执行的机器指令数据段数据段(DS)包括程序所定义的数据堆栈段堆栈段(SS)包括程序需要暂存的任何数据和地址,或由你自己“调用”的子程序所用的数据与地址段边界段寄存器包含段的起始地址(段边界)寄存器和段不一定是

12、所显示的顺序,可以是任何顺序存放。内存地址地址地址代码断数据段堆栈段SSDSCS段寄存器在存储器中可再定位Figure1-4段与寄存器(段边界)因为在所有情况下,最右边的十六进制数位都是0,所以存放数字0到段寄存器中是没有必要的。本书使用方括号()指明最右边的十六进制的0.例如:038E0段偏移值在一个程序中,一段范围内的所有存储单元都是相对于段起始地址的。一个段内从段地址到另一个单元以字节位单位的距离称为偏移值例子:(DS)=038EHDS段地址:038E0H偏移值:0032H实际地址:03912H寄存器(寄存器)v段寄存器CS寄存器寄存器有效程序代码段得起始地址.加上在指令指针(IP)寄存

13、器中的偏移值,就指明了为执行指令所要取得的指令地址。(CS)+(IP)=下一条指令的地址(寄存器)DS寄存器寄存器包含程序数据段得起始地址,该地址加上在指令中的偏移值,就可以访问位于数据段中的指定字节单元。(DS)+(BX)=数据段中数据的地址(DS)+(DI)=数据段中数据的地址(DS)+(SI)=数据段中数据的地址(DS)+(16位立即数)=数据段中数据的地址(寄存器)SS寄存器寄存器允许在寄存器中实现堆栈。加上堆栈指针(SP)寄存器中的偏移值,就指明了正被寻址的堆栈中的当前字。(SS)+(SP)=堆栈中的当前字的地址(SS)+(BP)=堆栈中的数据的地址(寄存器)ES寄存器寄存器程序中其

14、他段得起始地址。用于某些串操作中和DI寄存器相关联(ES)+(DI)=串地址的结尾v指针寄存器指针寄存器指令指针指令指针(IP)的的寄存器寄存器包含要执行的下一条指令的偏移地址IP是和CS寄存器相关联的堆栈指针堆栈指针(SP)寄存器寄存器包含了在堆栈中被寻址的当前字的偏移地址SP和BP寄存器与SS寄存器相关联v通用寄存器AX:主累加器主累加器.用于有关输入/输出和大多数算术运算操作.例如,乘法,除法AX16位AHALEAX32位BX:基址寄存器,可以用作扩展寻址的变址CX:计数寄存器DX:数据寄存器v变址寄存器变址寄存器SI:16位源变址寄存器,与DS相关联DI:16位目的变址寄存器,与ES相

15、关联v标志寄存器标志寄存器标志寄存器指明处理器的状态和指令运行的结果当一条指令设置了一个标志位,这个标准位会一直保留,直到其他指令对其进行更改标志寄存器在实模式下,包含了一下的标志位标志标志:ODITSZAPC位号位号.1514131211109876543210O(溢出标志溢出标志):指出在算术运算后高阶(最左边)位的溢出JO和JNO可以测试这个位(结果溢出,O=1).如果机器字长度是8位,表示范围::-128+127D(方向标志方向标志):确定传送或比较串(字符)数据时的左右方向(D=1,地址递减)数据传送;(D=0,地址递增)STD设置方向标志,D=1CLD清除方向标志,D=0I(中断标

16、志中断标志):指明处理所有的外部中断(STI,I=1)还是忽略(CLI,I=0).T(陷阱标志陷阱标志):当被设置为当被设置为1时(时(T=1),允许处理器以),允许处理器以单步方式工作单步方式工作 Z(零标志零标志):指明算术运算或比较操作的结果(指明算术运算或比较操作的结果(0=结果为非零,结果为非零,1=结果为结果为0)JE和JZ可以测试这个标准位.S(符号标志符号标志):包含一次算术运算操作的结果的符号(0=正,正,1=负)负)A(辅助进位标志辅助进位标志):包含在算术运算操作中包含在算术运算操作中第第3位到第位到第4位位的进位输出的进位输出(进位或借位,A=1;否则,A=0)P(奇偶标志奇偶标志):8位数据的操作产生的结果中为1的位的数量。(偶数,P=1;奇数,P=0)JP和JPO可以测试这个标志位C(进位标志进位标志):包含一个算术运算操作后,来自高包含一个算术运算操作后,来自高阶(最左边)位的进位;还包含移位阶(最左边)位的进位;还包含移位或者循环操作最后位的内容或者循环操作最后位的内容(进位或借位,C=1;否则,C=0)

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服