




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编语言程序设计,主讲:,2009,第2章80X86计算机组织结构,两款用于工业的AllinOneCPU板,PentiumCPU,486CPU,28086CPU和寄存器组,2.1计算机系统的构成2.1.1Intel8086CPU内部结构2.1.2寄存器组2.1.3标志寄存器2.2内存(存储器)组织2.3堆栈技术2.48086寻址方式2.5汇编语言程序设计过程,2.1计算机系统的构成P14,硬件:,中央处理机CPU,总线控制逻辑,接口,接口,存储器,大容量存储器,I/O设备,I/O子系统,系统总线,.,.,软件:系统软件用户软件,计算机系统由硬件和软件两大部分组成,翻译程序,机器语言,汇编语言,高级语言,编译型高级语言,解释型高级语言,BASIC,C,PASCAL,FORTRAN,直接解释运行,编译,编译,汇编,翻译程序包括:汇编程序(masm)、解释程序和编译程序连接程序(linker):与库文件连接生成可执行文件装入程序(loader):用来把要执行的程序从外存传送到内存调试程序(debug):是系统提供的,用以监控用户程序的一种工具,返回本章首页,2.1.1Intel8086CPU内部结构P14,返回本章首页,2.1.28086寄存器组P15,8086CPU寄存器分组,寄存器组,数据寄存器共有4个寄存器AX、BX、CX、DX,每个16位寄存器可拆分成两个8位寄存器,用来保存操作数或运算结果等信息。AX寄存器称为累加器。使用频度最高,用于算术、逻辑运算以及与外设传送信息等。BX寄存器称为基址寄存器。常用于存放存储器地址。CX寄存器称为计数器。一般作为循环或串操作等指令中的隐含计数器。DX寄存器称为数据寄存器。常用来存放双字数据的高16位,或存放外设端口地址。,1通用数据寄存器P15,变址和指针寄存器包括SI、DI、SP、BP个16位寄存器,主要用于存放某个存储单元的偏移地址。SI是源变址寄存器,DI是目的变址寄存器,在字符串操作中,SI和DI都具有自动增量或减量的功能。SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址;BP为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。,2变址和指针寄存器P15,3段寄存器P16,8086CPU的个16位的段寄存器分别称为代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。段寄存器用来确定该段在内存中的起始地址。代码段用来存放程序的指令序列。CS存放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。,4指令指针P17,8086CPU中的指令指针IP,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。在目标程序运行时,IP的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令、子程序调用指令等。,返回本章首页,2.1.3标志寄存器P15,8086CPU中有一个很重要的16位标志寄存器,它包含9个标志位,主要用于保存一条指令执行后,CPU所处状态信息及运算结果的特征。1条件标志2状态控制标志,标志寄存器(FLAGS/PSW)P15,1514131211109876543210,条件码标志:控制标志:,OF溢出标志DF方向标志SF符号标志IF中断标志ZF零标志TF陷阱标志CF进位标志AF辅助进位标志PF奇偶标志,OFDFIFTFSFZFAFPFCF,例:ADDAX,BXJO/JCERROR?,1条件标志,(1)进位标志CF(2)零标志ZF(3)符号标志SF(4)溢出标志OF(5)奇偶标志PF(6)辅助进位标志AF,2状态控制标志,(1)方向标志DF(2)中断允许标志IF(3)陷阱标志TF,返回本章首页,2.2内存组织及存储器物理地址的形成,2.2.1存储器2.2.2存储器单元的地址和内容2.2.3物理地址的形成,返回本章首页,2.2.1存储器P17,存储器是计算机的记忆部件,用来存放程序和数据。按所在的位置,存储器可以分成主存储器和辅助存储器,高速缓冲存储器。主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成,其成本高,容量小,但速度快。高速缓冲存储器(cache):速度高,容量小辅助存储器可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低,容量大,但速度较慢。,返回本节,2.2.2存储器单元的地址和内容P18,存储器以字节(8bit)为编程单位每个字节单元都有唯一的地址编码地址用无符号整数来表示(编程用十六进制表示)一个字要占用相继的两个字节低位字节存入低地址,高位字节存入高地址字单元地址用它的低地址来表示,图中表明了存储器中部分存储单元存放信息情况。从图中可看到,地址为34560H的字节的存储单元中的内容是34H,而地址为34561H的字节存储单元中的内容是12H。,返回本节,2.2.3物理地址的形成P19,8086,80286的字长是16位。80386到PII机的字长为32位。8086,8088的地址线是20位的,这样最大可寻址空间应为220=1MB,其物理地址范围从00000HFFFFFH。80286的地址总线宽度为24位80386,80486,Pentium的地址总线宽度为32位PentiumPro和PentiumII的地址总线宽度为36位,实模式存储器寻址P19,实模式下的最大寻址空间为1MB,8086/8088只能在实模式下工作。逻辑地址=段地址:偏移地址1.存储器地址的分段根据要求可把1M字节地址空间划成若干逻辑段。每个逻辑段必须满足两个条件:一是逻辑段的起始地址(简称段首址)必须是16的倍数;二是逻辑段的最大长度为64K。按照这两个条件,1M字节地址空间最多可划分成64K个逻辑段,最少也要划分成16个逻辑段。逻辑段与逻辑段可以相连,也可以不连,还可以重叠。,【例2-1】各独立段的分配情况示例。P20,设CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它们分别为代码段、数据段、堆栈段和附加段的段首址。自每个段首址开始,各段均占64KB的范围,各段之间互不重叠。如下图所示。,cs,图2.1各段不重叠存储单元分配图,【例2-2】各段相互重叠情况示例。,设CS=0200H、DS=0400H、SS=0480H,这样代码段、数据段和堆栈段的物理首地址分别为02000H、04000H和04800H。其中代码段占8KB地址空间,数据段占2KB,堆栈段占256B,SP=0100H。如下图所示。,图2.2各段重叠存储单元分配图,2.实模式寻址的物理地址=16d*段地址+偏移地址0000B,16位段地址,16位偏移地址,20位物理地址,返回本节,2.3堆栈技术,1.堆栈描述P24堆栈是内存种的一块特定区域,先进后出、后进先出的存储空间,存储地址由高到低存放。堆栈指针SS:SP。2.堆栈操作堆栈操作遵循“先进后出、后进先出”的原则。例:SS=2000H,SP=100H,用PUSH指令将数据1234H压入栈,堆栈操作示意图如下。,堆栈段地址2000H:0000H2000H:0100H栈底地址SP,34H,12H,内存,堆栈指针SP2000H:00FEH,进栈,出栈,入栈时,SP指针先减2,数据再入栈。出栈时,数据先出栈,SP指针再加2。,返回本章首页,2.480X86寻址方式和指令系统,1、立即寻址2、寄存器寻址与存储器有关的寻址方式3、直接寻址4、寄存器间接寻址5、寄存器相对寻址6、基址变址寻址7、基址变址相对寻址跨段问题,8086CPU指令的共同的规律,l大多数数据传送类指令、算术运算类指令、位操作类指令及串操作类指令,其双操作数指令有相同的语句格式和操作规定。语句格式标号:操作符OPD,OPS;注释OPD-目的操作数OPS-源操作数again:AX=0 x1200;/c语言语句lagain:MOVAX,1200H;AX=1200H,目的操作数,源操作数,标号,助记符,注释区,有效地址EA和物理地址PA,存储器分段管理物理地址(PA,20位,与CPU的地址线宽度相等)、逻辑地址(LA,形如1000H:2000H)、四个段地址(SA,16位,包括CS、DS、ES、SS)、有效地址(EA,16位,又叫偏移地址)的关系:LA=SA:EA,我们使用逻辑地址编写程序,而计算机访问存储器时输出的是物理地址,即物理地址由逻辑地址形成:PA=SA*10H+EA,1立即寻址P26,立即寻址方式中,指令操作码和操作数都在存储器代码段中。汇编格式:n(n为立即操作数,是用8位或16位二进制补码表示的有符号数)功能:操作数存放在存储器,指令下一单元的内容为立即操作数n。图形表示:例:ADDAX,100C语言:AX+=100;,内存中的代码,立即数,【例2.3】,【例2.3】MOVAX,10;C语言AX=10;执行后(AX)=?该例中源操作数为立即寻址方式,立即数为10,存放在指令的下一单元。图形表示:执行:10AX执行后:(AX)=000AH,返回本节,内存中的代码,立即数10,2寄存器寻址P27,寄存器寻址方式的操作数在指令指明的寄存器中。汇编格式:R其中R表示寄存器名。功能:操作数直接存放在寄存器R中。图形表示:R指令操作数ADDAX,BXAX+=BX;/c语言,内存中的代码,R操作数,【例2.4】,下列程序执行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX该程序中MOV指令为数据传送指令操作符,ADD指令为加法指令操作符,三条指令皆为双操作数指令。第一、二条指令中AX、BX为目的操作数,为寄存器寻址方式;源操作数为立即寻址。第三条指令中,AX为目的操作数地址,BX为源操作数地址。源地址和目的地址皆为寄存器寻址方式。,图形表示:MOVAX,1234HMOVBX,5678HADDAX,BX执行:1234HAX5678HBX(AX)+(BX)AX执行后:(AX)=68ACH,(BX)=5678H,返回本节,3直接寻址P28,汇编格式:含有变量的地址表达式。段寄存器名:EA。功能:指令下一字单元的内容是操作数的偏移地址EA。图形表示:,【例2.5】寄存器和存储器内容为:(AX)=1212H,BUF为数据段定义的变量,其偏移地址是2000H,(DS)=3000H,(32000H)=45ABH。执行指令:MOVAX,BUF或MOVAX,2000H执行后:(AX)=?执行:(32000H)AX执行后:(AX)=45ABH,返回本节,内存数据,物理地址,4寄存器间接寻址P29,寄存器间接寻址方式中,寄存器的内容为操作数的偏移地址EA,操作数在存储器中。汇编格式:R功能:操作数存放在存储器,寄存器R存放操作数的偏移地址EA。能够作为寄存器间接寻址的寄存器:基址寄存器:BX、BP和变址寄存器:SI、DI其中:BX、SI、DI默认段为DSBP默认段为SS,偏移地址EA计算方法如下:,EA=,SI;SI作间址寄存器。DI;DI作间址寄存器。BX;BX作间址寄存器。BP;BP作间址寄存器。,执行指令:MOVAX,BP执行后:(AX)=1234H(BP)=0030H(SS)=2000H(20030H)=1234H图形表示如下:,【例2.6】寄存器和存储器内容分别为:(AX)=0,(BP)=0030H,(SS)=2000H,(20030H)=1234H,返回本节,物理地址,内存数据,段地址,偏移地址,5寄存器相对寻址P30,变址寻址方式操作数的偏移地址EA为寄存器的内容加位移量,操作数在存储器中。汇编格式:XR(X表示位移量,是8位或16位二进制补码表示的有符号数)功能:操作数存放在存储器,寄存器R的内容加位移量X为操作数的偏移地址EA。图形表示如下:,偏移地址EA计算方法如下:,执行:(20036H)+(AX)20036H执行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。,返回本节,【例2.7】设执行前:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H执行指令:ADD6BX,AX,6基址变址寻址P31,基址变址寻址方式中,操作数的偏移地址EA是指令中基址寄存器内容、变址寄存器内容之和,操作数在存储器中。汇编格式:BRIR或BR+IR功能:操作数存放在存储器,BR的内容加IR的内容是操作数的偏移地址EA。如:MOVDX,BXSI基址寄存器:BX、BP变址寄存器:SI、DI,返回本节,基址变址寻址,7基址变址相对寻址P32,基址变址相对寻址方式中,操作数的偏移地址EA是指令中基址寄存器内容、变址寄存器内容、位移量三项之和,操作数在存储器中。汇编格式:XBRIR或XBR+IR功能:操作数存放在存储器,BR的内容加IR的内容加位移量X是操作数的偏移地址EA。图形表示:,操作数偏移地址EA计算方法如下,执行:(20000H+2000H+1000H+0250H)(AX)执行后:(AX)=0050H,(BX)=2000H,(SI)=1000H,(DS)=2000H,(23250H)=0050H。,返回本节,【例2.8】设执行前:(BX)=2000H,(SI)=1000H,(DS)=2000H,MASK=0250H(23250H)=0050H执行指令:MOVAX,MASKBXSI,8跨段问题P22,按前述规定:若选用BP作间址基址寄存器、变址寄存器或基址寄存器,则操作数在堆栈段,操作数的物理地址PA由堆栈段寄存器SS的内容左移4位与偏移地址EA相加后形成;否则,操作数在数据段,操作数的物理地址PA由数据段寄存器DS的内容左移4位与偏移EA相加后形成。该规定为系统默认状态。当要否定默认状态,到非约定段寻找操作数时,必须用跨段前缀指明操作数的段寄存器名。跨段问提也就是指定段问题,非默认段时必须指明段。汇编格式:段寄存器名:操作数地址。功能:段寄存器名指明操作数属哪个段。,【例2.9】跨段前缀示例。,MOVAX,DS:BPMOVCX,SS:SI该例中,DS:,SS:均为跨段前缀,此时默认状态无效,操作数的物理地址PA由段寄存器内容左移4位加偏移EA形成。上述2条指令的源操作数物理地址分别为:PA1=(DS)左移4位+BPPA2=(SS)左移4位+SI,返回本节,2.4.4外设寻址方式,每一个接口包含一组REGISTER:数据寄存器、状态寄存器、控制寄存器P33数据寄存器:存放外设和主机间传送的数据状态寄存器:保存外设或接口的状态信息命令寄存器:保存CPU发给外设或接口的控制命令每一个寄存器有一个PORT地址,80X86的I/O地址空间可达64KB,端口地址范围为0000FFFFH80X86提供两种调用:BIOS调用(basicinput/outputsystem),DOS调用(diskoperatingsystem)I/O口寻址指令IN、OUTINAX,12HINAL,DXOUT12H,ALOUTDX,AX,2.5汇编语言程序设计过程,1开发环境P224或实验指导书P2-20用编辑程序(Edit等)编辑源程序生成文本文件用汇编程序(MASM等)将源程序汇编为目标文件OBJ用连接程序(LINK)把OBJ文件连接装配成可执行文件EXE。调试过程,用debug工具对生成的EXE文件调试和测试。,2.开发过程,分析问题,设计算法,编制程序,分析结果,修改分析,完成,返回本章首页,返回本章首页,结束,作业:P34习题7、8、9、11、12其余课后思考,课堂抽查复习第1、2章基础知识预习第3章汇编语言格式,练习,1指令指针寄存器是()。IPSPBPPSW2当执行指令ADDAX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF1,下面的叙述正确的是()。表示结果中含1的个数为偶数表示结果中含1的个数为奇数表示该数为偶数表示结果中低八位含1的个数为偶数38088CPU中通用寄存器是_,指针寄存器是_,段寄存器是_。48088CPU具有_条地址线,直接寻址能力可达_。5在标志寄存器中,反映进位标志位是_,方向标志位是_,溢出标志位是_,符号标志位是_,零标志位是_。6变址寄存器SI和DI,它们即可作为通用寄存器,也可以作为_寄存器分别存放_数据串和_数据串的基址。780
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025厂房施工材料采购与验收合同
- 2025版生物科技企业收购居间合同协议
- 2025版海底隧道施工队承包合同模板下载
- 红酒知识与健康培训心得课件
- 2025年企业并购合同主要条款概述
- 2025商务合同范本:主播兼职合作协议
- 农村农业资源循环利用合作合同书
- 合作社农业资源开发利用协议
- 城市交通智能调度系统协议
- 合作社资金扶持项目协议
- GB/T 6344-2008软质泡沫聚合材料拉伸强度和断裂伸长率的测定
- GB/T 39201-2020高铝粉煤灰提取氧化铝技术规范
- GB/T 3836.4-2021爆炸性环境第4部分:由本质安全型“i”保护的设备
- GB/T 20801.6-2020压力管道规范工业管道第6部分:安全防护
- GB/T 19355.2-2016锌覆盖层钢铁结构防腐蚀的指南和建议第2部分:热浸镀锌
- 核心素养视角下教师专业发展课件
- 企业信用信息公告系统年度报告模板:非私营其他企业
- 施工员钢筋工程知识培训(培训)课件
- 质量管理体系审核中常见的不合格项
- 共用水电费分割单模板
- 《阿房宫赋》全篇覆盖理解性默写
评论
0/150
提交评论