版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、汇编语言课件018086/8088的基本结构计算机的程序设计语言 1.机器语言 低级语言 2.汇编语言程序设计语言 3.高级语言 Basic、C/C+、 Delphi、JAVA机器语言n指令指令机器指令;机器指令;n机器指令的组成:操作码、操作数;机器指令的组成:操作码、操作数;n指令系统;指令系统; 机器语言:指令系统及使用指令系统机器语言:指令系统及使用指令系统编写程序的规则。编写程序的规则。n机器语言特点:计算机唯一能够直接识别的语言。机器语言特点:计算机唯一能够直接识别的语言。n目标程序:用机器语言描述的程序。目标程序:用机器语言描述的程序。n机器语言的致命缺点:难以使用。如机器语言的
2、致命缺点:难以使用。如100+256的的8086机器语言程序:机器语言程序: B8 64 00 05 00 01 A3 00 20汇编语言n汇编指令:用便于记忆、并能描述指令功能的符汇编指令:用便于记忆、并能描述指令功能的符号表示机器指令号表示机器指令汇编指令(符号指令)。汇编指令(符号指令)。n助记符:表示指令操作码的符号,一般用英语单助记符:表示指令操作码的符号,一般用英语单词或缩写。指令的操作数也用符号表示。词或缩写。指令的操作数也用符号表示。n汇编语言:汇编指令及使用汇编指令编写程序的汇编语言:汇编指令及使用汇编指令编写程序的规则。规则。n汇编语言汇编语言(源源)程序:使用汇编语言编写
3、的程序程序:使用汇编语言编写的程序n汇编语言的特点:汇编指令与机器指令一一对应,汇编语言的特点:汇编指令与机器指令一一对应,但相对机器语言易于理解、掌握。当我们用低级但相对机器语言易于理解、掌握。当我们用低级语言编写程序时使用汇编语言而不用机器语言。语言编写程序时使用汇编语言而不用机器语言。n汇编和汇编程序:翻译过程汇编和汇编程序:翻译过程 翻译程序翻译程序当今汇编语言的价值n汇编语言仍具有不可替代的应用。汇编语言仍具有不可替代的应用。直接控制硬件,充分发挥硬件功能。直接控制硬件,充分发挥硬件功能。汇编语言程序代码质量高,占用内存空间少,汇编语言程序代码质量高,占用内存空间少,执行速度快。执行
4、速度快。n应用优势:应用优势: 对于解决某些领域的问题,如操作系统、实时对于解决某些领域的问题,如操作系统、实时控制和处理、加密控制和处理、加密/解密、软件调试、病毒分析、解密、软件调试、病毒分析、设备驱动程序等领域具有独特的优势。设备驱动程序等领域具有独特的优势。在显示器显示在显示器显示: Hello!CODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:CODE ASSUME CS:CODE,DS:CODE ORG 100H ORG 100HSTA: JMP S1STA: JMP S1 m db 0DH,0AH, Hello!$ m db 0DH,0AH,
5、Hello!$S1: PUSH CSS1: PUSH CS POP DS POP DS MOV AH,9 MOV AH,9 MOV DX,OFFSET m MOV DX,OFFSET m INT 21H INT 21H MOV AH,4CH MOV AH,4CH INT 21H INT 21HCODE ENDSCODE ENDS END STA END STAC+控制台格式控制台格式:#include void main() cout“Hello!”endl; VC+ 6.0 执行代码文件执行代码文件:208kB执行代码文件执行代码文件:25字节字节汇编语言的缺陷n与处理器密切有关与处理器密切
6、有关不同厂家、不同系列不同厂家、不同系列CPU的汇编语言区别很大的汇编语言区别很大n需要熟悉计算机硬件系统、考虑许多细节需要熟悉计算机硬件系统、考虑许多细节不同系列的不同系列的CPU工作的硬件系统往往不同,甚至同一工作的硬件系统往往不同,甚至同一系列、同一型号的系列、同一型号的CPU所在系统也不同所在系统也不同n编写繁琐,调试、维护、交流和移植困难编写繁琐,调试、维护、交流和移植困难兼容性问题兼容性问题不易读、不易写不易读、不易写例如例如A+B赋给赋给C的操作的操作高级语言高级语言: C=A+B ; 汇编语言汇编语言: MOV AX , A ADD AX , B MOV C , AX硬件系统结
7、构系统资源:系统资源:CPU、存储器、存储器、I/O端口端口1.1 8088/8086的功能结构n总线接口单元总线接口单元BIU(Bus Interface Unit)完成完成CPU和存储器的信息传送、总线控制、和存储器的信息传送、总线控制、I/O数据传送,地址生成数据传送,地址生成取指令、操作数,传送给取指令、操作数,传送给EUn执行单元执行单元EU(Excution Unit)对指令译码、执行对指令译码、执行算数和逻辑运算算数和逻辑运算8086/8088内部结构内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线执行部分执行部分控制电路控制电
8、路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行单元执行单元 (EU)总线接口单元总线接口单元 (BIU)16位位20位位16位位8位位1.2 8088/8086的寄存器结构的寄存器结构n通用寄存器通用寄存器8个个16位寄存器位于位寄存器位于EU中中数据寄存器(共数据寄存器(共4个个16位)位)指针及变址寄存器(共指针及变址寄存器(共4个个16位)位)n段寄存器段寄存器n控制寄存器控制寄存器内部暂存器内部暂存器 IP ES SS DS CS输入输入/输
9、出输出控制电路控制电路外部总线外部总线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件 (EU)总线接口部件总线接口部件 (BIU)16位位20位位16位位8位位AHALBHBLCHCLDHDLAXBXCXDX1)数据寄存器)数据寄存器nAX(Accumulator)累加器:算术运算的主要寄存累加器:算术运算的主要寄存器器 ,所有的,所有的I/O指令都用此寄存器指令都用此寄存器nBX(Base)基址寄存器:除通
10、用外,计算存储器地基址寄存器:除通用外,计算存储器地址做基址用址做基址用nCX(Count)计数器:通用,作循环计数器计数器:通用,作循环计数器nDX(Data)数据寄存器:常用来存放双字长数据的数据寄存器:常用来存放双字长数据的高高16位,或存放外设端口地址位,或存放外设端口地址n特点:特点:可作可作16位寄存器使用,也可将每个拆成位寄存器使用,也可将每个拆成2个个8位位寄存器使用,对其中某寄存器使用,对其中某8位的操作,并不影响位的操作,并不影响另外对应另外对应8位的数据位的数据具有良好的通用性:在程序中即可存放操作数,具有良好的通用性:在程序中即可存放操作数,也可存放操作结果也可存放操作
11、结果SIDISPBP2)指针及变址寄存器)指针及变址寄存器n变址寄存器变址寄存器SI(Source Index)源变址寄存器源变址寄存器DI(Destination Index)目的变址寄存器目的变址寄存器n指针寄存器指针寄存器SP(Stack Point)堆栈指针寄存器堆栈指针寄存器栈顶的偏移地址栈顶的偏移地址BP(Base Point)基址指针寄存器基址指针寄存器默认默认SS段段n特点:可用于存放操作数,但只能作为特点:可用于存放操作数,但只能作为16位使用位使用内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线执行部分执行部分控制电路控制
12、电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件 (EU)总线接口部件总线接口部件 (BIU)16位位20位位16位位8位位3) 段寄存器nCS:代码段寄存器:代码段寄存器对应的段存放指令代码对应的段存放指令代码nDS:数据段寄存器:数据段寄存器对应的段存放数据或变量对应的段存放数据或变量nSS:堆栈段寄存器:堆栈段寄存器对应的段存放栈操作的数据对应的段存放栈操作的数据nES:附加段寄存器:附加段寄存器对应的段一般存放数据或变对应的段一般
13、存放数据或变量量CSDSESSS4)控制寄存器)控制寄存器nIP(Instruction Pointer)指令指针寄存器指令指针寄存器(16bits)与代码段寄存器与代码段寄存器CS联用,确定下一条指令的物联用,确定下一条指令的物理地址理地址指示代码段中指令的偏移地址指示代码段中指令的偏移地址计算机通过计算机通过CS : IP寄存器来控制指令序列的执寄存器来控制指令序列的执行流程行流程IP寄存器是一个专用寄存器寄存器是一个专用寄存器不能对不能对IP指针直接进行访问指针直接进行访问nFR(Flags Register)标志寄存器)标志寄存器标志(标志(Flag)用于反映指令执行结果或控制指)用于
14、反映指令执行结果或控制指令执行形式令执行形式8086处理器的各种标志形成了一个处理器的各种标志形成了一个16位的标志位的标志寄存器寄存器FR(程序状态字(程序状态字PSW, Program Status Word)内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路外部总线外部总线执行部分执行部分控制电路控制电路1 2 3 4 5 6ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用寄存器通用寄存器地址加法器地址加法器指令队列缓冲器指令队列缓冲器执行部件执行部件 (EU)总线接口部件总线接口部件 (BIU)16位
15、位20位位16位位8位位OF1115 - 12DF10IF9TF8SF7ZF65AF43PF21CF0 状态标志(状态标志(6 6):前面的操作执行后,):前面的操作执行后,ALUALU所处所处的状态,将影响后面的操作的状态,将影响后面的操作 控制标志(控制标志(3 3):用专门的指令进行设置,用于):用专门的指令进行设置,用于控制处理器执行指令的方式控制处理器执行指令的方式进位标志进位标志CF(Carry Flag)3AH + 7CH3AH + 7CHB6HB6H,没有进位:,没有进位:CF = 0CF = 0AAH + 7CHAAH + 7CH(1 1)26H26H,有进位:,有进位:CF
16、 = 1CF = 10 0没有产生进没有产生进/ /借位借位1 1有进有进/ /借位产生借位产生CF=CF=记录运算时从最高有效位产生的进记录运算时从最高有效位产生的进/借位值借位值零标志零标志ZF(Zero Flag)0 0结果非零结果非零1 1结果为零结果为零ZF=ZF=3AH + 7CH3AH + 7CHB6HB6H,结果不是零:,结果不是零:ZF = 0ZF = 084H + 7CH84H + 7CH(1 1)00H00H,结果是零:,结果是零:ZF = 1ZF = 1表示运算后结果是否为零表示运算后结果是否为零符号标志符号标志SF(Sign Flag)表示运算后符号位运算结果表示运算
17、后符号位运算结果0 0符号位为符号位为0 0(正)(正)1 1符号位为符号位为1 1(负)(负)SF=SF=3AH + 7CH3AH + 7CHB6HB6H,最高位,最高位D D7 71 1:SF = 1SF = 184H + 7CH84H + 7CH(1 1)00H00H,最高位,最高位D D7 70 0:SF = 0SF = 0奇偶标志奇偶标志PF(Parity Flag)表明运算结果最字(字节)中表明运算结果最字(字节)中“1”1”的个数的奇偶的个数的奇偶0 0 “1”“1”的个数为奇数的个数为奇数1 1 “1”“1”的个数为偶数的个数为偶数PF=PF=3AH + 7CH3AH + 7C
18、HB6HB6H10110110B10110110B结果中有结果中有5 5个个1 1,是奇数:是奇数:PF = 0PF = 0溢出标志溢出标志OF(Overflow Flag)表明补码的运算结果是否有溢出表明补码的运算结果是否有溢出0 0 没有溢出没有溢出1 1 溢出溢出OF=OF=3AH + 7CH3AH + 7CHB6HB6H,产生溢出:,产生溢出:OF = 1OF = 1AAH + 7CHAAH + 7CH(1 1)26H26H,没有溢出:,没有溢出:OF = 0OF = 0辅助进位标志辅助进位标志AF(Auxiliary Carry Flag)记录运算时记录运算时D D3 3位(低半字节
19、)有无进位或借位位(低半字节)有无进位或借位0 0 D D3 3未产生进未产生进/ /借位借位1 1 D D3 3产生进产生进/ /借位借位AF=AF=3AH + 7CH3AH + 7CHB6HB6H,D D3 3有进位:有进位:AF = 1AF = 1 这个标志主要由处理器内部使用,用于十进制算术这个标志主要由处理器内部使用,用于十进制算术运算调整指令中,用户一般不必关心运算调整指令中,用户一般不必关心方向标志方向标志DF(Direction Flag) 用于串操作指令中,控制地址的变化方向用于串操作指令中,控制地址的变化方向0 0存储器地址自动增量修改存储器地址自动增量修改1 1存储器地址
20、自动减量修改存储器地址自动减量修改DF=DF=中断允许标志中断允许标志IF(Interrupt Flag) 用于开中断或屏蔽中断用于开中断或屏蔽中断0 0关中断,禁止响应中断关中断,禁止响应中断1 1开中断,允许响应中断开中断,允许响应中断IF=IF=陷阱标志陷阱标志TF(Trap Flag)用于控制处理器进入单步操作方式用于控制处理器进入单步操作方式0 0处理器正常工作处理器正常工作1 1处理器单步执行指令处理器单步执行指令单步执行指令单步执行指令处理器在每条指令执行结束时,处理器在每条指令执行结束时,便产生一个编号为便产生一个编号为1 1的内部(单步)中断的内部(单步)中断所以所以TFTF
21、也称为单步标志也称为单步标志n利用单步中断可对程序进行逐条指令的调试利用单步中断可对程序进行逐条指令的调试n这种逐条指令调试程序的方法就是单步调试这种逐条指令调试程序的方法就是单步调试TF=1.3 8088/8086的存储器结构1. 数据的存储格式数据的存储格式 0002H 3 4 H 0002H 1 2 3 4 H 0002H 7 8 5 6 1 2 3 4 H2. 存储器的分段管理存储器的分段管理n16位存储器地址:编号从位存储器地址:编号从0000HFFFFH,即,即64KB容量容量n8088/8086 CPU的地址线是的地址线是20位,其物理地址范位,其物理地址范围:围:00000HF
22、FFFFH,即,即1MB容量容量n8088 CPU将将1MB存储器空间分成许多逻辑段存储器空间分成许多逻辑段( Segment)来管理,每个段最大限制为)来管理,每个段最大限制为 64KB,而且只能从模而且只能从模16地址开始一个逻辑段地址开始一个逻辑段n逻辑地址逻辑地址段基地址段基地址:段内偏移地址段内偏移地址n段基地址段基地址说明逻辑段在主存中的起始位置,简称段地址。说明逻辑段在主存中的起始位置,简称段地址。为了能用为了能用16位寄存器表达段地址,位寄存器表达段地址, 8086/8088规定段地址必须是模规定段地址必须是模16地址,即为地址,即为 xxxx0H形形式。省略二进制的低式。省略
23、二进制的低4位位0,段地址就可以用二,段地址就可以用二进制的进制的16位数据表示,通常被保存在位数据表示,通常被保存在16位的段位的段寄存器中。寄存器中。n段内偏移地址段内偏移地址说明主存单元距离段起始位置的偏移量说明主存单元距离段起始位置的偏移量( Displacement),简称偏移地址,简称偏移地址(Offset)。由。由于限定每段不超过于限定每段不超过64KB,所以偏移地址也可,所以偏移地址也可以用以用16位数据表示位数据表示2020位物理地址的形成位物理地址的形成n将逻辑地址中的段地址左移二进制将逻辑地址中的段地址左移二进制4位(对应位(对应16进制是一位,即乘以进制是一位,即乘以16),加上偏移地址),加上偏移地址n例如逻辑地址例如逻辑地址“ 1460H:100H”就表示物理地址就表示物理地址 14700Hn同一个物理地址可以有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 危险化学品仓库泄漏应急演练方案
- 脱粒机操作工安全操作规程
- 制鞋前帮机安全操作规程
- 2026年农商银行运营条线人员考试题库附答案
- 口服抗凝药外伤出血分级处置流程共识
- 浙江省台州市仙居县2027届数学七年级第一学期期末学业质量监测试题含解析
- Oracle面试300题及详细答案(实战完整版)
- OCP认证全套题库真题及详细答案解析(完整版)
- 高级育婴师考试试题(含答案)
- 幼儿园教师资格考试综合素质试卷及答案(2026年)
- 19《航天员写给孩子的信》课件
- 试验检测服务框架协议合同模板
- 腮腺疾病超声诊断与应用
- 2025年版全国医疗服务价格项目规范
- 教育培训机构催款律师函案例
- 会展活动策划与管理实习报告
- 《线性代数》 课件 黄先开 第5章 相似对角化
- 年产35000套玻璃钢雕塑新建项目环评资料环境影响
- 国家电网有限公司新一代电子商务平台(ECP20)操作手册-省公司合同管理-供应商操作分册
- 盾构施工用无害可降解型泡沫剂
- 第四届全国工业设计职业技能大赛(玩具设计师)选拔赛考试题库(含答案)
评论
0/150
提交评论