首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
七、80x86指令系统
(一)8086指令系统
8086/8088指令系统是整个80x86系列微处理器的基础,按功能可以分为六种类型。
1.传送指令
传送指令用于在存储单元、寄存器、输入/输出端口之间传送地址或数据。
①通用数据传送指令
MOV指令:该指令可以将一个立即数传送到寄存器或存储单元中,也可以在寄存器与寄存器之间、寄存器与存储器之间传送字数据或字节数据。例如:将一个立即数传送到寄存器中的指令MOV AL,05H;在两个寄存器之间传送字节数据的指令MOV AL,BL;在寄存器和存储器之间传送数据的指令MOV SI,[BX+5AH]。
XCHG指令:该指令可以将源操作数和目的操作数进行交换,但操作数可以是寄存器或存储单元,不能是段寄存器或立即数,也不能同时为两个存储器操作数。
PUSH指令:PUSH指令是对一个16位操作数执行进栈操作,这是在一个操作数和堆栈之间进行数据传送,而不是在两个操作数之间进行数据传送。
POP指令:POP指令是将一个16位操作数执行出栈操作,这也是在一个操作数和堆栈之间进行数据传送。
XLAT指令:该指令专门用于在AL寄存器与字节表中某一存储单元之间进行数据传送。其中字节表的首地址存放在BX基址寄存器中,根据AL设置的偏移地址,可以将该单元的内容传送到AL累加寄存器中。
②输入/输出指令
该指令专门用于在累加器和I/O端口之间进行数据传送操作。输入/输出的工作原理:CPU使用AL或AX寄存器接收数据或发送数据,最多可提供64K个8位端口地址,或32K个16位端口地址。当端口地址小于256时使用直接寻址来获得操作数,即在指令中直接指定端口地址;当端口地址超过256时使用间接寻址来获得操作数,即先将端口地址放到DX寄存器中,然后利用IN指令或OUT指令进行输入/输出操作。例如:IN AX,28H是从I/O端口28H输入一个字到AX寄存器中;OUT 5,AL是从AL寄存器输出一个字节到I/O端口5中。
③地址传送指令
LEA指令:该指令是将源操作数的偏移地址传送到通用寄存器、指针寄存器或变址寄存器中,要求目的操作数是一个16位寄存器,源操作数是一个存储器地址,这样就可以获得指令执行所需的有效地址。
LDS指令:该指令是将源操作数指定的连续四个存储单元中存放的32位地址指针(包括一个段地址和一个偏移量)传送到两个16位寄存器,其中两个高位字节(段基址)送段寄存器DS,两个低位字节(指偏移量)送指令指定的16位通用寄存器,这样就获得指令执行所需的地址指针。LES指令:该指令是将源操作数指定的连续四个存储单元中所存放的32位地址指针(一个段地址和一个偏移量)传送到指令指定的16位通用寄存器和段寄存器ES中。其中两个高位字节(段基址)送段寄存器ES,两个低位字节(指偏移量)送指令指定的16位通用寄存器,这样就获得指令执行所需的地址指针。④标志传送指令
该指令用于对标志寄存器中的内容进行数据传送操作。
2.算术运算指令
在8086/8088微处理器中,算术运算指令可用于二进制数和无符号十进数的各种算术运算。二进制数可以是单字或双字节,也可以是有符号数或无符号数。十进制数直接使用BCD码,以表示无符号(Unsigned)的十进制数。
(1)加法指令
①ADD
格式: ADD OPRD1,OPRD2
功能:实现两个操作数相加,结果送原来存放目的操作数的地方。目的操作数可以是累加器、通用寄存器或存储器操作数。
加法指令可以完成累加器与立即数,或与任一通用寄存器、或与存储单元的内容相加,结果放在累加器中。
说明:加法指令可以完成任一通用寄存器与任一通用寄存器,或与立即数、或与存储单元的内容相同,其“和”放在通用寄存器中。
加法指令也可以实现存储器操作数与立即数,或与累加器、或与通用寄存器内容相加,其“和”放在存储单元中。
注意:存储器操作数与立即数相加时,必须指明操作数的类型。ADD指令的执行结果将影响标志位CF、AF、PF、ZF、SF和OF。
②ADC
格式: ADC OPRD1,OPRD2
功能:ADC指令与ADD类似,不同之处在于两个操作数相加时,还要加上进位标志CF的当前值,结果送原来存放目的操作数的地方。
说明:指令执行结果对标志值的影响与ADD相同。
③INC
格式: INC OPRD
功能:操作数OPRD加1。操作数可以是通用寄存器,也可为存储器操作数。说明:该指令执行结果影响标志位SF、ZF、AF、PF和OF,而对CF无影响。④AAA
功能:AAA是未组合BCD码加法调整指令
。它对在AL中两个未组合的十进制数相加的结果进行校正,产生一个未组合的十进制和数。⑤DAA
功能:DAA为十进制加法调整指令。它对AL中两个组合的十进制数相加的结果进行校正,产生一个组合的十进制和数。
相关推荐:计算机等级考试三级PC技术常见系统命令行北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |