[理学]438086指令系统.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]438086指令系统

4.3 8086指令系统 全面而准确地理解每条指令的功能和应用,是编写汇编语言程序的关键 4.3.1 数据传送类指令 最基本、最重要的一种操作 最常使用 把数据从一个位置传送到另一个位置 除标志寄存器传送指令外,均不影响标志位 重点掌握 MOV、XCHG、LEA 1、传送指令MOV(move) 格式:MOV 目的操作数,源操作数 MOV AX,5000 MOV DS,BX MOV指令的常见形式: MOV 存储单元,立即数 MOV 寄存器,立即数 MOV 存储单元,寄存器 MOV 寄存器,存储单元 MOV指令举例 例1. MOV AX,5000 例2. MOV DX,DATA1 例3. MOV CX,DS:[0020H] 例4. MOV Sum,BX 例5. MOV AX,DataSegment MOV DS,AX 两个操作数的类型不一致 两个操作数都来自存储器单元 段寄存器的限制 不允许立即数传送给段寄存器 不允许直接改变CS值 不允许段寄存器之间的直接数据传送 MOV指令传送功能 立即数 段寄存器 CS DS ES SS 通用寄存器 AX BX CX DX BP SP SI DI 存 储 器 MOV也并非任意传送 2、交换指令XCHG(exchange) 交换两个操作数的内容 寄存器与寄存器之间对换数据 寄存器与存储器之间对换数据 不能在存储器与存储器之间对换数据 格式:XCHG 操作数1,操作数2 XCHG AX,BX XCHG CX,[BP+SI] 3、有效地址传送指令LEA(load EA) 将存储器操作数的有效地址传送至指定的寄存器中 格式:LEA 寄存器,源操作数 LEA AX,Cnt 把符号地址cnt的值送AX LEA DX,[BX][SI] 把BX+SI的值送DX (存储单元) 体会不同: LEA AX,[BX] MOV AX,[BX] 加法运算指令 减法运算指令 乘法运算指令 除法运算指令 4.3.2 算术运算类指令 1 加法指令 1、加法指令ADD 2、带进位加法指令ADC 3、加1指令INC 普通加法指令ADD 格式:ADD 目的操作数,源操作数 功能:目的操作数←目的操作数+源操作数 ADD AX, BX ADD AX,[BX] 带进位加法指令ADC 主要应用于很大数(双精度数)的加法 格式:ADC 目的操作数,源操作数 功能:目的操作数←目的操作数+源操作数+CF ADC指令 举例 MOV AX,X MOV DX,X+2 ADD AX,Y ADC DX,Y+2 MOV Z,AX MOV Z+2,DX 有2个双精度数(双字存储,即4字节),假设它们分别存储在符号地址为X,Y的 存储单元中,现要求把它们的和存储在符号地址为Z的存储单元中 加1指令 INC 格式: INC 操作数 功能:操作数←操作数+1 操作数的来源可以是寄存器或存储器单元 最常用对计数器和地址指针进行调整。 如:INC BX ;即(BX)+1→BX。 类似于 C语言中的 i++ 减法运算指令 1、减法指令 SUB 2、带借位减法指令 SBB 3、减1指令 DEC 4、求补指令 NEG 5、比较指令 CMP 普通减法指令 SUB 格式:SUB 目的操作数,源操作数 功能:目的操作数←目的操作数-源操作数 SUB AL, BH SUB AX,[BX] 带借位加法指令SBB 主要应用于很大数(双精度数)的减法 格式:SBB 目的操作数,源操作数 功能:目的操作数←目的操作数-源操作数-CF 减1指令 DEC 格式: DEC 操作数 功能:操作数←操作数-1 操作数的来源可以是寄存器或存储器单元 最常用对计数器和地址指针进行调整。 如:DEC BX ;即(BX)-1→BX。 类似于 C语言中的 i-- 求补指令 NEG 格式:NEG 操作数 功能:-(操作数)→ 操作数 MOV AL,45 NEG AL 则指令执行后(AL)= -45 比较指令 CMP CMP AL,50 JB f1 …… …… f1:…… 格式:CMP 目的操作数,源操作数 功能:比较两个操作数的大小 该指令后往往紧跟条件转移指令,用以产生不同 的程序分支,类似于高级语言中的IF语句 加减法指令 综合举例 MOV AX,X MOV DX,X+2 ADD AX,Y ADC DX,Y+2 SUB AX,Z SBB DX,Z+2 MOV W,AX MOV W+2,DX 有3个双精度数(双字存储,即4字节),假设它们分别存储在符号地址为X,Y,Z 的存储单元中,现要求把X+Y-Z的结果存储在符号地址为W的存储单元

文档评论(0)

ipbohn97 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档