- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]汇编_01
《汇编语言》 用汇编语言编写程序的工作过程 汇编语言的组成 汇编语言由以下3类组成: 1、汇编指令(机器码的助记符) 2、伪指令 (由编译器执行) 3、其它符号(由编译器识别) 汇编语言的核心是汇编指令,它决定了汇编语言的特性。 寄存器概述 8086CPU有14个寄存器 它们的名称为: AX、BX、CX、DX、SI、DI、SP、BP、 IP、CS、SS、DS、ES、PSW。 通用寄存器 以AX为例,8086CPU的16位寄存器分为两个8位寄存器的情况: CPU执行下表中的程序段的每条指令后,对寄存器中的数据进行的改变。 段的概念 错误认识: 内存被划分成了一个一个的段,每一个段有一个段地址。 其实: 内存并没有分段,段的划分来自于CPU,由于8086CPU用“(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。 段的概念 我们可以认为:地址10000H~100FFH的内存单元组成一个段,该段的起始地址( 基础地址)为10000H,段地址为1000H,大小为100H。 段寄存器 段寄存器就是提供段地址的。 8086CPU有4个段寄存器: CS、DS、SS、ES 当8086CPU要访问内存时,由这4个段寄存器提供内存单元的段地址。 CS和IP CS和IP是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址。 CS为代码段寄存器; IP为指令指针寄存器。 8086PC读取和执行指令相关部件 8086PC读取和执行指令演示 8086PC工作过程的简要描述 8086PC工作过程的简要描述 (1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器; (2)IP = IP + 所读取指令的长度,从而指向下一条指令; (3)执行指令。 转到步骤 (1),重复这个过程。 8086PC工作过程的简要描述 在 8086CPU 加电启动或复位后( 即 CPU刚开始工作时)CS和IP被设置为CS=FFFFH,IP=0000H,即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令是8086PC机开机后执行的第一条指令。 修改CS、IP的指令 8086CPU必须提供相应的指令 先回想我们如何修改AX中的值? mov指令不能用于设置CS、IP的值, 8086CPU没有提供这样的功能。 8086CPU为CS、IP提供了另外的指令来改变它们的值:转移指令 如何修改AX中的值? mov 指令 如:mov ax,123 mov指令可以改变8086CPU大部分寄存器的值,被称为传送指令。 能够通过mov 指令改变CS、IP的值吗? 修改CS、IP的指令 同时修改CS、IP的内容: jmp 段地址:偏移地址 jmp 2AE3:3 jmp 3:0B16 功能:用指令中给出的段地址修改CS,偏移地址修改IP。 修改CS、IP的指令 仅修改IP的内容: jmp 某一合法寄存器 jmp ax (类似于 mov IP,ax) jmp bx 功能:用寄存器中的值修改IP。 问题分析 内存中存放的机器码和对应汇编指令情况: (初始:CS=2000H,IP=0000H) 请写出指令执行序列: 问题分析结果: (1)mov ax,6622 (2)jmp 1000:3 (3)mov ax,0000 (4)mov bx,ax (5)jmp bx (6)mov ax,0123H (7)转到第(3)步执行 DS和[address] 例如:我们要读取10000H单元的内容送寄存器al中: mov bx,1000H mov ds,bx mov al,[0]; 问题: 写几条指令,将al中的数据送入内存单元10000H?(思考后分析) 分析问题本质: 怎样将数据从寄存器送入内存单元? 结论:mov bx,1000H mov ds,bx mov [0],al (一种合理的回答) 字的传送 问题:内存中的情况如右图,写出下面指令执行后寄存器ax,bx,cx中的值。 思考后看分析。(单步跟踪) 问题分析 字的传送 问题3.4:内存中的情况如右图,写出下面指令执行后寄存器ax,bx,cx中的值。 思考后看分析。(单步跟踪) 问题分析 mov、add、sub指令 已学mov指令的几种形式: mov 寄存器,数据 mov 寄存器,寄存器 mov 寄存器,内存单元 mo
文档评论(0)