二、算术逻辑运算指令_第1页
二、算术逻辑运算指令_第2页
二、算术逻辑运算指令_第3页
二、算术逻辑运算指令_第4页
二、算术逻辑运算指令_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

二 算术运算指令包括加 减 乘 除 加1 减1等共24条指令注 这类指令大都影响标志位 1 加法指令带进位加法指令不带进位加法指令加1指令十进制调整指令 不带进位加法指令 ADDA Rn A A Rn ADDA direct A A direct ADDA Ri A A Ri ADDA data A A data对于PSW的影响 执行这组指令将影响标志位Cy AC OV P 当然 溢出标志OV只有带符号数运算才有用 二 算术运算指令 例3 10 设 A 0C3H R0 0AAH 执行指令 ADDA R0 结果 所得和为6DH 标志位Cy 1 OV 1 Ac 0 二 算术运算指令 带进位加法指令 ADDCA Rn A A Rn Cy ADDCA direct A A direct Cy ADDCA Ri A A Ri Cy ADDCA data A A data Cy 注 主要用于多字节的加法运算 二 算术运算指令 例3 11 设 A 0C3H R0 0AAH Cy 1执行指令 ADDCA R0 二 算术运算指令 例3 12 试编写计算6655H 11FFH的程序 MOVA 55HADDA 0FFHMOV50H AMOVA 66HADDCA 11HMOV51H A 二 算术运算指令 3 二 十进制调正指令 BCD码修正指令 DAA 若 A3 0 9 或 AC 1 则 A3 0 A3 0 06H 若 A7 4 9 或 Cy 1 则 A7 4 A7 4 60H注 本指令不能单独使用 只能用在加法指令之后本指令不能直接用于十进制数减法的调正本指令不能简单的把累加器A中的16进制数变换成BCD码 二 算术运算指令 例3 13 设累加器A内容为压缩BCD码56 即01010110B 寄存器R3的内容为压缩BCD码67 即01100111B Cy内容为1 执行下列的指令 ADDCA R3DAA 二 算术运算指令 例3 14 设有4个压缩BCD码 分别放在内部数据存储器50H 51H单元和60H 61H单元中 试编写求出两个数的和的程序 结果存放到40H 41H单元中 二 算术运算指令 MOVA 50H A 50H ADDA 60H A A 60H DAA BCD码修正MOV40H AMOVA 51HADDCA 61HDAAMOV41H A 二 算术运算指令 加1指令 INCA A A 1INCRn Rn Rn 1INCdirect direct direct 1INC Ri Ri Ri 1INCDPTR DPTR DPTR 1注 执行结果只影响PSW的奇偶校验位P 以A为操作数时 二 算术运算指令 2 减法指令 带借位减法指令SUBBA Rn A A Rn Cy SUBBA direct A A diect Cy SUBBA Ri A A Ri Cy SUBBA data A A data Cy 功能是将累加器A内容减去源地址单元内容 再减去进位位Cy的内容 结果放入累加器A中问题 如何应用此指令对两个单字节数相减 二 算术运算指令 主要用于多字节数的减法如果要进行单字节或多字节数低8位数的减法运算 应先清除进位位Cy 对于PSW的影响CY AC OV P例3 15 设累加器A的内容为0C9H 寄存器R2内容为54H 进位标志Cy 1 执行指令 SUBBA R2 二 算术运算指令 例3 16 试编写计算EE33H A0E0H的程序 CLRC Cy 0MOVA 33H A 33HSUBBA 0E0H A A E0HMOV50H A 50H A MOVA 0EEHSUBBA 0A0HMOV51H A 二 算术运算指令 减1指令 DECA A A 1DECRn Rn Rn 1DECdirect direct diect 1DEC Ri Ri Ri 1注 执行结果只影响PSW的奇偶校验位P 以A为操作数时 二 算术运算指令 3 乘 除法指令 MULAB A A B 7 0 B A B 15 8如果积大于255 FFH 则溢出标志OV置1 否则清0 进位标志位Cy总为0 二 算术运算指令 例3 17 设 A 50H 80 B 0AH 160 执行指令 MULAB 结果乘积为3200H 12800 则 A 00H B 32H OV 1 Cy 0 二 算术运算指令 除法指令 DIVAB A A B 的商 B A B 的余数标志位Cy和OV清0 当除数为0时OV置1 二 算术运算指令 三 逻辑运算指令 共25条按操作数个数分为两类 单操作数指令双操作数指令逻辑运算指令包括与 或 异或 循环 累加器 清零 与 求反 指令 这些指令的操作数都是8位 逻辑运算指令不影响标志位 1 单操作数逻辑运算指令 累加器A的 清零 与 取反 指令CLRA A 00HCPLA A 三 逻辑运算指令 移位指令 累加器A循环左移指令 RLA 累加器A连同进位位循环左移指令 RLCA 累加器A循环右移指令 RRA 累加器A连同进位位循环右移指令RRCA 三 逻辑运算指令 例3 18 若 A 10111101B BDH Cy 0执行 RLCA 的结果为 A 01111010B 7AH Cy 1A的内容扩大2倍 三 逻辑运算指令 2 双操作数的逻辑运算指令 逻辑 与 指令ANLA Rn A A Rn ANLA direct A A direct ANLA Ri A A Ri ANLA data A A dataANLdirect A direct direct A ANLdirect data direct direct data注 用于屏蔽数据 三 逻辑运算指令 例3 19 将累加器A中压缩BCD码分为二个字节 形成非压缩BCD码 放入30H和31H单元中 MOV40H A 保存A中的内容ANLA 00001111B 清高4位 保留低4位MOV30H AMOVA 40H 取原数据ANLA 11110000B 保留高4位 清低4位SWAPAMOV31H A 三 逻辑运算指令 逻辑 或 指令 ORLA Rn A A Rn ORLA direct A A direct ORLA Ri A A Ri ORLA data A A dataORLdirect A direct direct A ORLdirect data direct direct data注 可对某些位置位 三 逻辑运算指令 例3 20 将累加器A中的低4位由P1口的低4位输出 P1口的高4位不变 三 逻辑运算指令 ANLA 00001111BMOV30H A 保留A中的低4位MOVA P1ANLA 11110000B P1的高4位不变ORLA 30HMOVP1 A 三 逻辑运算指令 逻辑

温馨提示

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

评论

0/150

提交评论