005-指令系统_1303_第1页
005-指令系统_1303_第2页
005-指令系统_1303_第3页
005-指令系统_1303_第4页
005-指令系统_1303_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 数据传送 Datatransfer 二 算术运算 Arithmetic 三 逻辑运算和移位指令 Logic Shift 四 串操作 Stringmanipulation 五 控制转移 ControlTransfer 六 处理器控制 ProcessorControl 第三章8086 8088的指令系统 八位寄存器 AH AL BH H BL CH CL DH DL十六位通用寄存器 AX BX CX DX SP BP SI DI堆栈指针 SP指令指针 IP 或PC 标志位 Flags目的和源变址寄存器 DI SI段寄存器 CS DS ES SS通用寄存器 r 指令系统的符号说明 src dest源 目的操作数 下列寻址方式都可以用 BX SI n BX DI n BP SI n BP DI n SI n DI n BP n BX n N r 存储器单元的内容 正常在数据段 ES 附加存储器段的内容OPRD操作数Seg段寄存器 CS DS ES SS im立即数 n8位 nn16位 nnnn32位 指令系统的符号说明 8086 8088指令助记符表 8086 8088指令助记符表 1 通用传送指令 GeneralPurposeTransfer 2 输入输出指令 InputandOutput 3 目的地址传送指令 Address objecttransfer 4 标志传送指令 Flagregistertransfer 一 数据传送指令 Datatransfer 功能 负责把数据 地址或立即数传送到寄存器或存储单元 特点 它是计算机最基本 最重要的一种操作 使用比例最高 通用传送指令包括 MOV PUSH POP XCHG XLAT输入输出指令指令包括 IN OUT目的地址传送指令包括 LEA LDS LES标志传送指令包括 LAHF SAHF PUSHF POPF除SAHF和POPF指令外 对标志位没有影响 一 数据传送指令 Datatransfer 8086提供方便灵活的通用的传送操作 适用于大多数操作数 通用传送指令 除了XCHG以外 是唯一允许以段寄存器为操作数指令 通用传送指令包括 1 MOV Movement 2 PUSH Pushwordontostack POP Popwordoffstack 3 XCHG Exchange 4 XLAT Translate 1 1通用传送指令 1 MOVdest src dest src 目的源目的 源功能 把一个字节 B 或一个字 W 操作数由源传送至目的 实现 寄存器 寄存器 存储器之间 立即数 寄存器 存储器寄存器 存储器 段寄存器之间的数据传送 MOV CPU内部寄存器之间的数据的任意传送 除了码段寄存器CS和指令指针IP以外 段寄存器之间不能传送 例 MOVDL CH 8位寄存器 8位寄存器MOVAX DX 16位寄存器 16位寄存器MOVSI BPMOVDS BX 通用寄存器 段寄存器MOVAX CS 段寄存器 通用寄存器 MOV应用 立即数传送至CPU内部通用寄存器组 AX BX CX DX BP SP SI DI 用于给寄存器赋初值 不能直接给段寄存器赋值例 MOVCL 04H 立即数 8位寄存器MOVAX 03FFH 立即数 16位寄存器MOVWORDPTR SI 057BH 立即数 存储器MOVBYTEPTRMEM 5 立即数 存储器 MOV应用 CPU内部寄存器 除CS和IP外 与存储器 所有寻址方式 之间数据传送 可以实现一字节或一个字的传送 存储单元之间不能直接传送MOVMEM AX 累加器 存储器 直接寻址MOVMEM DS 段寄存器 存储器 直接寻址MOVDISP BX CX 寄存器 存储器 变址寻址MOVAX DISP SI 存储器 累加器 变址寻址MOVDS MEM 存储器 段寄存器 直接寻址MOVCX DISP BX SI 存储器 累加器 相对基址加变址 MOV应用 1 不能用一条MOV指令实现以下传送 存储单元之间的传送MOVMEM2 MEM1错 MOVAX MEM1MOVMEM2 AX对 立即数送段寄存器MOVDS 2000H错 MOVAX 2000HMOVDS AX对 MOV说明 段寄存器之间的传送MOVES DS 错MOVAX DSMOVES AX 对注意CS和IP的使用CS和IP不能作为目标操作数 CS可以作为源操作数 例 MOVCS AX 错MOVAX CS 对MOVIP AX 错MOVAX IP 对 MOV说明 2 段地址的默认BX SI DI间址默认段地址为DS BP间址默认段地址SS 3 凡是遇到给SS赋值指令 系统自动禁止外部中断 执行本条指令和下条指令 恢复对SS寄存器赋值前的中断开放情况 这样做为了允许程序员连续用两条指令分别对SS和SP寄存器赋值 同时又防止堆栈空间变动过程出现中断 在修改SS和SP的指令之间不要插入其他指令 4 所有通用传送指令不影响标志位 除SAHF POPF以外 MOV说明 实现将AREA1开始的100个数据传送到AREA2开始的单元 AREA1 AREA2 100个数据 MOV实例 可以用200条MOV指令来完成100个数据传送 指令操作重复 每个数据传送后的地址是变化的 可以利用循环 但每循环一次要修改地址 源地址和目的地址 必须把地址放在寄存器当中 用寄存器间接寻址来寻找操作数 MOV实例 MOVSI OFFSETAREA1MOVDI OFFSETAREA2MOVCX 100AGAIN MOVAL SI MOV DI ALINCSI修改地址指针INCDI修改地址指针DECCX修改个数JNZAGAIN MOV实例 PUSH Pushwordontostack POP Popwordoffstack 堆栈 按照先进后出原则组织的一段内存区域 特点 下推式的 规定堆栈设置在堆栈段内 改变SP的内容 随着推入堆栈内容增加 SP的值减少 先进后出工作原则 LastInFirstOut简称LIFO 栈操作 可以用一条立即数传送指令给SP赋值 确定SP在SS段中的初始位置 例 设 SS 9000H 堆栈段为64KBMOVSP 0E200H SP 0E200H则 整个堆栈段的物理地址范围为 90000H 9FFFFH栈顶的物理地址为 9E200H堆栈在内存中的情况如右图所示 堆栈在内存 存放CPU寄存器或存储器中暂时不使用的数据 使用数据时将其弹出 调用子程序 响应中断时都要用到堆栈 调用子程序 或过程 或发生中断时要保护断点的地址 子程序或中断返回时恢复断点 堆栈用途 主程序 Mainprogram 往往要调用子程序或处理中断 暂停主程序 执行子程序或中断服务程序 子程序在一个实际程序中 有些操作要执行多次 把要重复执行操作编为子程序 也常把一些常用的操作标准化 通用化的子程序 主程序 子程序 调用子程序 将下条指令地址即IP值保留下来 8088中码段寄存器CS和指令指针IP 才能保证子程序执行完后准确返回主程序继续执行 执行子程序时 通常用到内部寄存器 执行结果会影响标志位 必须在调用子程序之前将现状保护起来 子程序嵌套或子程序递归 自调自 保留许多信息 而且保证正确返回 且后进先出 后保留先取出原则 即LIFO LASTInFirstout 调用子程序 注意 SP 堆栈指针 始终指向栈顶 SP初值用MOVSP im来设定 堆栈用途 存放CPU寄存器或存储器中暂时不用的数据 使用数据时弹出 PUSHAX 将 AX 入栈 AX AX 堆栈用途 使用数据时将其弹出 POPBX 堆栈用途 调用子程序 或过程 或发生中断时要保护断点的地址 子程序或中断返回时恢复断点 子程序嵌套 断点地址压入和弹出情况 堆栈用途 入栈指令PUSHsrc SP SP 2 SP 1 SP src 把一个字从源操作数 由SP指向堆栈顶部 操作如 PUSHAX出栈指令POPdest dest SP 1 SP SP SP 2把现行SP所指向堆栈顶部的一个字 指定的目的操作数 同时进行修改堆栈指针的操作 操作如 POPBX 堆栈操作指令 堆栈操作都按字操作 PUSH POP指令的操作数可能有三种 寄存器 通用寄存器 地址指针 变址寄存器 段寄存器 CS除外 PUSHCS合法 POPCS非法 存储器 执行PUSH指令 SP 2 SP 低字节放在低地址 高字节放在高地址 随着推入堆栈内容增加 堆栈就扩展 SP的值减少 但SP总是指向栈顶 堆栈工作原则后进先出 PUSH POP指令应该成对使用 保持堆栈原有状态 堆栈最大容量即为SP的初值与SS之间的差 说明 应用举例 例 用BP的基址指令代替POP指令 MOVBP SPPUSHA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论