机器指令是计算机CPU执行某种操作的命令编码。指令系统是指某一类型CPU中所有机器指令的集合。8086/8088CPU的指令系统共包含92种基本指令,按照功能可将它们分为6大类:数据传送指令、算术运算指令、逻辑运算和移位指令、串操作指令、控制转移指令、处理器控制指令。

中文名

机器指令语句

外文名

machine instruction statement

领    域

计算机机器指令

由1,0组成的特定的二进制数序列

机器指令格式

操作码字段  地址码字段

分    类

数据传送指令、算术运算指令等

机器指令语句指令及其格式

编辑

语音

机器指令是由1,0组成的特定的二进制数序列。

图1

机器指令格式为:操作码字段 地址码字段。其中,操作码字段表示执行操作类型,地址码字段表示操作数的地址或操作数本身。一般的操作数有被操作数,操作数及操作结果三种类型。图1为机器指令的例子。

机器指令语句指令助记符

编辑

语音

为了便于书写和阅读,每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符。图2是典型的指令助记符。

图2

机器指令语句指令符号说明

编辑

语音

AH、AL、BH、BL、CH、CL、DH、DL:八位通用寄存器;

AX、BX、CX、DX、SP、BP、DI、SI:十六位通用寄存器;

SP: 堆栈指针;

IP:指令指针;

FLAGS:标志寄存器;

DI、SI:目的和源变址寄存器;

CS、DS、SS、ES: 段寄存器;

SEG:段寄存器通用符号;

REG:通用寄存器组;

AC:AX或AL/AH(取决于操作数长度)

SRC:源操作数

DST:目的操作数

MEM:存储器操作数

MEM/REG:存储器或通用寄存器操作数

DATA:立即数,8位或16位

OPRD:操作数

n:8位立即数

nn:16位立即数

nnnn: 32位立即数

机器指令语句数据传送指令

编辑

语音

数据传送类指令分为四种:通用数据传送、累加器专用数据传送、地址传送和标志传送。

通用数据传送指令

通用数据传送指令包括最基本的传送指令MOV,堆栈操作指令PUSH和POP,数据交换指令XCHG和查表指令XLAT。

1.基本的传送指令MOV。指令一般形式为:MOV DST,SRC;指令功能: (字节或字);指令执行后,源操作数不变,目标操作数发生变化且与源操作数相同。例如:指令 MOV AL,BL;若该指令执行前,AL=25H,BL=86H,则指令执行后,AL=BL=86H。

2.堆栈操作指令。在8086/8088系统中,无论压入或弹出操作,都是以字为单位。

(1)入栈指令:指令格式:PUSH OPRD;指令功能:先修改SP-2→SP,然后把一个源操作数(1个字)传送到由SP所指向的堆栈的顶部。

(2)出栈指令:指令格式:POP OPRD;指令功能:是先将栈顶的一个字弹出送往目的操作数,再修改SP+2→SP。

3.交换指令。指令格式:XCHG OPRD1,OPRD2;指令功能:把二个字节或字的操作数相互交换。这二个操作数不能是立即数,也不能同时为存储器操作数。

4.查表指令。指令格式:XLAT SRC_Table;字节查表转换指令,根据表中元素的序号查出对应元素的内容,序号从0,1,2……..。预先(1)将表的首地址存入BX寄存器,(2)要查找元素序号存入AL,执行XLAT指令后,将指定序号对应的元素内容存于AL。

I/O数据传送指令

I/O(输入/输出)指令完成累加器AL(AX)与I/O端口间的数据传送功能。此类指令中,一个操作数为AX(16位)或AL(8位),另一个是I/O端口。I/O端口的地址范围总共64K,0000H-FFFFH。

I/O端口地址的表示方式:(1)直接方式:若端口地址≤FFH,端口地址用立即数直接给出;(2)间接方式:若端口地址>FFH,需要将I/O端口地址存入DX中。用DX可寻址100H-0FFFFH的端口。

1、端口输入指令IN

指令一般格式:IN AC,PORT

指令功能:把1个字节或1个字,由输入端口传送给AL或AX。又分以下几种形式:

(1)直接方式:地址≤FFH

IN AL,n

IN AX,n (n为端口地址)

(2)间接方式:地址>FFH

IN AL,DX

IN AX,DX

2、端口输出指令OUT

指令一般格式:OUT PORT,AC

指令功能:把AL(AX)中的1个字节(字),传送到某个输出端口。

(1)直接方式:

OUT n,AL

OUT n,AX (n为端口地址)

(2)间接方式:

OUT DX,AL

OUT DX,AX

地址传送指令

地址传送指令有3条:

①取有效地址指令LEA。指令一般格式:LEA REG,MEM;指令功能:将源操作数的段内偏移地址传送给目的操作数。

②地址指针装入DS指令LDS。指令一般格式: LDS REG,MEM;指令功能:源操作数必须是内存操作数,把源操作数(内存中的双字数据:32位逻辑地址)的高字部分(段基址)传送给DS,低字部分(段内偏移地址)送指令规定的寄存器。

③地址指针装入ES指令LES。指令一般格式:LES REG,MEM;指令功能:把源操作数(内存中的双字数据)的高位字传送给ES(16位段基址),低位字传送给指令规定的16位寄存器中。

标志传送指令

8086/8088有四条标志传送指令。

1.标志装入AH指令。指令格式:LAHF;指令功能:把标志寄存器的低8传送给AH。这样,相应的符号标志SF、零标志ZF、辅助进位标志AF、奇偶标志PF和进位标志CF被传送至AH的对应位。

2、 设置标志指令。指令格式:SAHF;此指令功能与LAHF相反,是把AH内容传给标志寄存器FLAGS的低8位,高8位不受影响。

3、 标志压入堆栈指令。指令格式:PUSHF;PUSHF指令先修改堆栈指针,即SP-2→SP,把整个标志寄存器内容压入堆栈。指令本身的执行不影响标志位。

4、 标志弹出堆栈指令。指令格式:POPF;这条指令把当前堆栈指针所指的一个字,传送给标志寄存器,同时修改堆栈指针,即SP+2→SP。

机器指令语句算术运算指令

编辑

语音

8086/8088提供加、减、乘、除四种基本的算术操作。操作数可是带符号数的字或字节,也可是不带符号数的字或字节。若是带符号数,则用补码表示。8086/8088还提供了各种校正操作指令,可以进行BCD码或ASCⅡ码表示的十进制数的算术运算。

二进制加减法指令

(1)不带进位的加减法指令ADD和SUB。指令用于无符号或带符号数的字节或字的加减运算。指令格式及功能:

ADD 目标, 源;目标+ 源→目标

SUB 目标, 源;目标-源→目标

(2)带进(借)位的加减法指令ADC及SBB。此类指令通常用来实现多字节、多字的加/减运算。除了在加法运算时须在最低位加上进位位CF值,或在减法运算时在最低位减去借位CF值外,其它与ADD,SUB指令相同。指令格式及功能:

ADC 目标, 源;目标+源+CF→ 目标

SBB 目标, 源;目标-源-CF→目标

(3) 加法和减法的ASCII码调整指令。对于加法调整,若为非压缩BCD码,使用指令AAA;若为压缩BCD码,使用指令DAA。对于减法调整,若为非压缩BCD码,使用指令AAS;若为压缩BCD码,使用指令DAS。

(4)加1/减1指令INC/DEC。指令格式及功能:

INC 目标 ;目标+1→目标

DEC 目标;目标-1→目标

指令字节较短,运行速度快,主要用于在循环程序中修改地址指针或循环次数。INC及DEC指令运算结果不影响CF标志,对其他标志位的影响与加减法指令ADD、SUB相同。

(5)求补及比较指令NEG、CMP。求补NEG及比较CMP指令都属于特殊的二进制减法运算。

指令格式及功能:NEG 目标 ;0-目标→目标

CMP 目标,源;目标-源→状态标志

二进制乘除法指令

(1)无符号数乘法指令:指令格式及功能:MUL SRC ;

(2)带符号数乘法指令:指令格式及功能:IMUL SRC ;

(3) 无符号数除法指令:指令格式及功能:DIV SRC ;

(4)带符号数除法指令:指令格式及功能:IDIV SRC ;

(5)转换指令(符号扩展):CWB: 将AL的符号位扩展到AH中;CWD:将AX的符号位扩展到DX中;

机器指令语句逻辑与移位

编辑

语音

为了处理字节或字中各位信息,8086/8088提供了三种位处理指令:逻辑运算指令、移位类指令和循环移位类指令。

逻辑运算指令包括逻辑与、逻辑或、逻辑非、逻辑异或和逻辑测试。所有的指令都对其操作数按每一位进行逻辑操作;操作数可以是字节或字。

①逻辑非指令NOT: 逻辑非指令主要用来使某数变反。指令格式及功能:NOT 目标;目标→目标;逻辑非指令不影响状态标志。

②逻辑与指令AND:指令格式及功能:AND 目标,源;目标 ∧源→目标和状态标志;指令对状态标志的影响:执行后将使CF、OF标志复位;按结果影响PF、ZF、SF标志;AF标志不定。

③逻辑或指令OR :指令格式及功能:OR 目标,源;目标 ∨源→目标和状态标志;或指令对状态标志的影响与AND 指令相似。或操作常用来使目标操作数某位置位。

④逻辑异或指令XOR :此类指令对状态标志的影响也与AND指令相似。XOR指令可使目标操作数某些位取反。指令格式:XOR 目标,源。

⑤逻辑测试指令TEST :指令格式及功能:TEST 目标,源;目标 ∧源→目标和状态标志。指令的功能是将两个操作数按位相与,但结果不送回目标,只影响状态标志,影响情况同AND指令。TEST指令常用来检测操作数的某位是1还是0。[1]

参考资料

1.

杨素行.微型计算机系统原理及应用(第3版):清华大学出版社,2014年

在微型计算机中机器指令,机器指令语句相关推荐

  1. 在微型计算机中任何外部设备,微型计算机与外部设备之间的信息传输方式有( )。...

    答案 查看答案 解析: [解析题]批处理操作系统提高了计算机系统的工作效率,但( ). [解析题]我们说二进制是现代电子计算机的重要理论基础之一,是因为() [解析题]计算机硬件非硬盘损坏也无法恢复数 ...

  2. 在微型计算机中1 mb准确等于,2013全国计算机等考一级微机知识模拟试题1

    无忧考网为大家收集整理了<2013全国计算机等考一级微机知识模拟试题1>供大家参考,希望对大家有所帮助!!! 1. 微型计算机硬件系统中最核心的部件是( ).B A.主板 B.CPU C. ...

  3. 在微型计算机中机器指令和数据都是以二进制,计算机考试试卷及答案

    计算机组成原理试题及答案 一.选择题 1.指令周期是指(C) A .CPU从主存取出一条指令的时间 B .CPU执行一条指令的时间 C. CPU从主存取出一条指令加上执行一条指令间 D.时钟周期时间 ...

  4. 在微型计算机中把数据传送到软盘上称为,计算机应用基础知识测试

    A. 不会丢失 B. 全部丢失 C. 大部分丢失 D. 局部丢失 (7) 在微型计算机中,把数据传送到软盘上称为( ). A. 写盘 B. 读盘 C. 输入 D. 以上都不是 (8) 下列说法中,正确 ...

  5. 在微型计算机中 任何外部设备必须通过,计算机文化基础 - 习题集(含答案)...

    <计算机文化基础(2014版)>课程习题集 西南科技大学成人.网络教育学院 版权所有 [说明]:本课程<计算机文化基础(2014版)>(编号为01017)共有单选题,简答题,判 ...

  6. 在微型计算机中1gb等于多少字节,计算机基础知识试题(2)

    33. 二进制数10110001B转换为十进制数应是___B___.(数据中的B表示该数是二进制数,请看解析)) A.123 B.177 C.179 D.167 [解析]如果用手工换算还是有点麻烦的, ...

  7. 微型计算机中 其CPU又称______,微机原理综合练习题3答案

    <微机原理综合练习题3答案>由会员分享,可在线阅读,更多相关<微机原理综合练习题3答案(19页珍藏版)>请在人人文库网上搜索. 1.综合练习题三一. 填空题这一芯片1微型计算机 ...

  8. (转)java 中的try catch finally 语句中含有return语句的执行情况(总结版)

    原处:http://blog.csdn.net/ns_code/article/details/17485221 在这里看到了try catch finally块中含有return语句时程序执行的几种 ...

  9. R语言嵌套的ifelse语距:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用。If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块

    R语言嵌套的ifelse语句:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用.If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块 ...

最新文章

  1. 程序员的编程艺术第一章
  2. 体感开发学习总结 - 二
  3. cnsul linux环境后台启动_Redis安装和配置(Windows和Linux)
  4. java 蓝桥杯算法训练 连续正整数的和(题解)
  5. 多线程的那点儿事(之无锁链表)
  6. inventor整理资源中心收藏夹
  7. bo蓝牙耳机怎么连接_超简单!电脑连接蓝牙音箱,蓝牙耳机!
  8. python函数可以返回多个函数值吗_python - 函数返回多个值是pythonic吗?
  9. 计算机多道程序设计是指什么,多道程序设计是什么意思?
  10. 小学-知识与能力【5】
  11. 《零秒工作》的一些总结
  12. 公司开发的APP,如何生成一个二维码,供客户下载使用
  13. 删除EFI系统分区(ESP)后Windows无法启动,重建引导分区并修复启动的过程
  14. 成为快乐高产的程序员的小诀窍。
  15. 阿里国际站装修尺寸是多少1920像素模板阿里巴巴全屏代码装修教程优化美化店铺工具
  16. Vue一级路由与二级路由/路由重定向
  17. 从ARM处理器,看“贵云黔芯”国产自主安全解决方案
  18. 基于cnn的人脸识别_鬼都藏不住,人脸识别新突破!就算遮住半张脸也能100%被识别...
  19. C语言LMS双麦克风消噪算法,芯片内部的噪声抑制算法,语音芯片来说也是一样(双麦克风降噪理念)...
  20. c语言投影是什么,计算机c语言中什么是关系的投影运算

热门文章

  1. 测试音质好坏的软件,敢挑战吗? 测测你是否真能听出好音质
  2. 【STM32H7】第20章 ThreadX GUIX汉字显示(QSPI Flash全字库)
  3. Antv L7地图可视化
  4. Optimality Gap
  5. [Perl工具篇] 安装Strawberry Perl与第一个Perl程序(Padre下)
  6. C++11 function和bind用法
  7. 中心极限定理以及置信区间总结
  8. 完美解决,抖音高清直播,解决服务升级中,功能暂不可用!
  9. 【Python学习笔记】(十)邮件处理:email模块;SMTP协议(smtplib模块);POP3协议(poplib模块);IMAP协议(imaplib模块)
  10. SQLserver 索引碎片