单片机原理与应用技术:5第3章 指令系统new.pptVIP

  • 3
  • 0
  • 约2.02万字
  • 约 87页
  • 2020-12-30 发布于安徽
  • 举报

单片机原理与应用技术:5第3章 指令系统new.ppt

第3章 指令系统及汇编 3.1 MCS—51单片机汇编语言与指令格式 3.2 寻址方式 3.3 MCS—51单片机指令系统 MCS—51单片机CPU对片外扩展的数据存储器RAM或I/O口进行数据传送, 必须采用寄存器间接寻址的方法, 通过累加器A来完成。要读或写外部的RAM,当然也必须要知道RAM的地址,在第2、4条指令中,地址是被直接放在DPTR中的。而第1、3条指令,由于Ri(即R0或R1)只是一个8位的寄存器,所以只提供低8位地址。 一般数据的传送是通过P0口和P2口完成的, 即片外RAM地址总线低8位由P0口送出, 高8位由P2口送出, 数据总线(8位)也由P0口传送(双向), 但与低8位地址总线是分时传送的。 注意:与外部RAM传送数据时,地址小于256B用Ri间址,大于256B用DPTR间址。 程序存储器向累加器A传送数据指令, 又称查表指令。 它采用变址寻址方式, 把程序存储器(ROM或EPROM)中存放的表格数据读出, 传送到累加器A。 3.3.2 算术运算类指令 算术运算类指令共有24条, 可分为加法、 带进位加法、 带借位减法、 加1减1, 乘除及十进制调整指令共6组。 它主要完成加、 减、 乘、 除四则运算, 以及增量、 减量和二—十进制调整操作, 对8位无符号数可进行直接运算; 借助溢出标志, 可对带符号数进行2的补码运算; 借助进位标志, 可进行多字节加减运算, 也可以对压缩BCD码(即单字节中存放两位BCD码)进行运算。 1. 加法指令 加法指令共有如下4条指令, 操作数助记符为ADD。 ADD A, #data ; (A) ← (A)+#data , 24 data ADD A, direct ; (A) ← (A)+(direct) , 25 direct ADD A, @Ri ; (A) ← (A)+((Ri)) , 26~27 ADD A, Rn ; (A) ← (A)+(Rn) , 28~2F 这4条指令使得累加器A可以和内部RAM的任何一个单元的内容进行相加, 也可以和一个8位立即数相加, 相加结果存放在A中。 无论是哪一条加法指令, 参加运算的都是两个8位二进制数。 对用户来说, 这些8位数可当作无符号数(0~255), 也可以当作带符号数(-128~+127), 即补码数。 例如: 对于二进制 用户可认为它是无符号数, 即为十进制数211, 也可以认为它是带符号数, 即为十进制负数-45。 但计算机在作加法运算时, 总按以下规定进行: (1) 在求和时, 总是把操作数直接相加, 而无须任何变换。 例如, 若A(211,-45), R1(232,-24), 执行指令ADD A, R1时, 其算式表达为: + 1 相加后(A)。 若认为是无符号相加, 则A的值代表十进制数187; 若认为是带符号补码数相加, 则A的值为十进制负数-69。 (2) 在确定相加后进位标志CY的值时, 总是把两个操作数作为无符号数直接相加而得出进位CY值。 如上例中, 相加后CY=1。 若为无符号数相加CY代表十进制数256, 但若是两个带符号数相加, CY没有意义。 (3) 在确定相加后溢出标志OV的值时, 计算机总是把操作数当作带符号数来对待。 在作加法运算时, 一个正数和一个负数相加是不可能产生溢出的, 只有两个同符号数相加才有可能产生溢出, 表示运算结果出错。 溢出标志OV和进位标志CY是两个意义不同的标志: 1、进位标志表示的是无符号数运算结果是否超出范围,但运算结果仍然正确; 2、溢出标志表示的是有符号数运算结果是否超出范围,运算结果已经不正确。 (4) 加法指令还会影响半进位标志和奇偶标志P。 在上述例子中, 由于D3相加对D4没有进位, 所以AC=0, 而由于运算结果A中1的数目为偶数, 故P=0。 例如: 设(A)=49H, (R0)=6BH, 执行指令: ADD A, R0 ; (A) ← (A)+(R0) ,

文档评论(0)

1亿VIP精品文档

相关文档