在微型计算机中机器指令,机器指令语句
机器指令是计算机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 mb准确等于,2013全国计算机等考一级微机知识模拟试题1
无忧考网为大家收集整理了<2013全国计算机等考一级微机知识模拟试题1>供大家参考,希望对大家有所帮助!!! 1. 微型计算机硬件系统中最核心的部件是( ).B A.主板 B.CPU C. ...
- 在微型计算机中机器指令和数据都是以二进制,计算机考试试卷及答案
计算机组成原理试题及答案 一.选择题 1.指令周期是指(C) A .CPU从主存取出一条指令的时间 B .CPU执行一条指令的时间 C. CPU从主存取出一条指令加上执行一条指令间 D.时钟周期时间 ...
- 在微型计算机中把数据传送到软盘上称为,计算机应用基础知识测试
A. 不会丢失 B. 全部丢失 C. 大部分丢失 D. 局部丢失 (7) 在微型计算机中,把数据传送到软盘上称为( ). A. 写盘 B. 读盘 C. 输入 D. 以上都不是 (8) 下列说法中,正确 ...
- 在微型计算机中 任何外部设备必须通过,计算机文化基础 - 习题集(含答案)...
<计算机文化基础(2014版)>课程习题集 西南科技大学成人.网络教育学院 版权所有 [说明]:本课程<计算机文化基础(2014版)>(编号为01017)共有单选题,简答题,判 ...
- 在微型计算机中1gb等于多少字节,计算机基础知识试题(2)
33. 二进制数10110001B转换为十进制数应是___B___.(数据中的B表示该数是二进制数,请看解析)) A.123 B.177 C.179 D.167 [解析]如果用手工换算还是有点麻烦的, ...
- 微型计算机中 其CPU又称______,微机原理综合练习题3答案
<微机原理综合练习题3答案>由会员分享,可在线阅读,更多相关<微机原理综合练习题3答案(19页珍藏版)>请在人人文库网上搜索. 1.综合练习题三一. 填空题这一芯片1微型计算机 ...
- (转)java 中的try catch finally 语句中含有return语句的执行情况(总结版)
原处:http://blog.csdn.net/ns_code/article/details/17485221 在这里看到了try catch finally块中含有return语句时程序执行的几种 ...
- R语言嵌套的ifelse语距:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用。If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块
R语言嵌套的ifelse语句:将一条If语句放在另一条If语句中,该语句作为嵌套的If else调用.If else语句允许我们根据表达式结果(TRUE或FALSE)打印不同的语句,执行不同的语句块 ...
最新文章
- 程序员的编程艺术第一章
- 体感开发学习总结 - 二
- cnsul linux环境后台启动_Redis安装和配置(Windows和Linux)
- java 蓝桥杯算法训练 连续正整数的和(题解)
- 多线程的那点儿事(之无锁链表)
- inventor整理资源中心收藏夹
- bo蓝牙耳机怎么连接_超简单!电脑连接蓝牙音箱,蓝牙耳机!
- python函数可以返回多个函数值吗_python - 函数返回多个值是pythonic吗?
- 计算机多道程序设计是指什么,多道程序设计是什么意思?
- 小学-知识与能力【5】
- 《零秒工作》的一些总结
- 公司开发的APP,如何生成一个二维码,供客户下载使用
- 删除EFI系统分区(ESP)后Windows无法启动,重建引导分区并修复启动的过程
- 成为快乐高产的程序员的小诀窍。
- 阿里国际站装修尺寸是多少1920像素模板阿里巴巴全屏代码装修教程优化美化店铺工具
- Vue一级路由与二级路由/路由重定向
- 从ARM处理器,看“贵云黔芯”国产自主安全解决方案
- 基于cnn的人脸识别_鬼都藏不住,人脸识别新突破!就算遮住半张脸也能100%被识别...
- C语言LMS双麦克风消噪算法,芯片内部的噪声抑制算法,语音芯片来说也是一样(双麦克风降噪理念)...
- c语言投影是什么,计算机c语言中什么是关系的投影运算
热门文章
- 测试音质好坏的软件,敢挑战吗? 测测你是否真能听出好音质
- 【STM32H7】第20章 ThreadX GUIX汉字显示(QSPI Flash全字库)
- Antv L7地图可视化
- Optimality Gap
- [Perl工具篇] 安装Strawberry Perl与第一个Perl程序(Padre下)
- C++11 function和bind用法
- 中心极限定理以及置信区间总结
- 完美解决,抖音高清直播,解决服务升级中,功能暂不可用!
- 【Python学习笔记】(十)邮件处理:email模块;SMTP协议(smtplib模块);POP3协议(poplib模块);IMAP协议(imaplib模块)
- SQLserver 索引碎片