- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.4 算术运算类指令(24条) 3.4.2减法指令 说明: 减法运算只有带借位减法指令,而没有不带借位的减法指令。若要进行不带借位的减法算,应该先用指令将CY清零,然后再执行SUBB指令。 3.4 算术运算类指令(24条) 3.4.2减法指令 【例3-28】设(A)=0DBH,(R4)=73H,(CY)=1,试分析执行指令SUBB A,R4后的差和各标志位的状态? 结果(A)=67H,(CY)=O,(AC)=0,(OV)=1。 在此例中,若DBH和73H是两个无符号数,则结果67H是正确 的;反之,若为两个带符号数,则由于产生溢出(OV=1),使 得结果是错误的,因为负数减正数其结果不可能是正数, OV=1,就指出了这一错误。 3.4 算术运算类指令(24条) 3.4.2减法指令 2、减1指令 DEC A ;A←(A)-1 DEC direct ;direct←(direct)-1 DEC Rn ;Rn←(Rn)-1 DEC @Ri ;RJ←((Ri))–1 这组指令的功能: 将操作数所指定单元的内容减1。 除“DEC A”指令影响P标志外,其余指令均不影响PSW标志。 3.4 算术运算类指令(24条) 3.4.2减法指令 【例3-29】若已知(A)=20H ,(30H)=36H,(R7)=58H,(R0)=50H,(50H)=08H,试计算下列指令的结果。 ① DEC A ;A←(A)-1 ② DEC 30H ;30H←(30H)-1 ③ DEC R7 ;R7←(R7)-1 ④ DEC @R0 ;(R0)←((R0))-1 解:指令执行后: ①(A)=1FH ; ②(30H)=35H; ③(R7)=57H; ④(R0)=50H;(50H)=07H。 3.4 算术运算类指令(24条) 3.4.2减法指令 3、BCD码的减法指令 由于DA A指令只能用在加法指令的后面。如果要进行BCD 码减法运算,也应该进行调整,但在80C51系列单片机中没 有十进制减法调整指令,也不像有的微处理器有加减标志, 因此要用适当的方法来进行十进制减法运算。 为了进行十进制减法运算,可用加减数的补数来进行,两位 十进制数是对100取补的,例如:减法60一30=30,也可以改 为补数相加为:60+(100-30)=130 丢掉进位后,就得到正确的结果。 3.4 算术运算类指令(24条) 3.4.2减法指令 在实际运算时,不可能用9位二进制数来表示十进制数100,因为CPU是8位的。为此,可用8位二进制数1001 1010(9AH)来代替。因为这个二进制数经过十进制调整后就是100000000。 因此,十进制无符号数的减法运算可按以下步骤进行: (1)求减数的补数,即9AH一减数; (2)被减数与减数的补数相加; (3)对第二步的和进行十进制调整,就得到所求的十进制减法运算结果。 这里用“补数”而没有用“补码”,这是为了和带有符号位的补 码相区别。由于现在操作数都是正数,没有必要再加符号 位,故称“补数”更为合适一些。 3.4 算术运算类指令(24条) 3.4.2减法指令 【例3-30】 编写程序实现十进制减法,计算87-38。 3.4 算术运算类指令(24条) 3.4.3乘、除法指令 80C51系列单片机有乘、除法指令各一条,它们都是一字节 指令,执行需4个机器周期的时间。 1、乘法指令 MUL AB ;BA ←(A)×(B) 这条指令的功能: 把累加器A和寄存器B中的两个8位无符号数相乘,所得16位 乘积的低8位放在A中,高8位放在B中。 3.4 算术运算类指令(24条) 3.4.3乘、除法指令 乘法指令执行后会影响3个标志: 若乘积小于FFH(即B的内容为零),则OV=0,否则OV=1; CY总是被清零; 奇偶标志P仍按累加器A中“1”的个数来确定,“1”的个数是奇数P=1,反之P=0。 乘法指令执行后会影响3个标志: 若乘积小于FFH(即B的内容为零),则OV=0,否则OV=1; CY总是被清零; 奇偶标志P仍按累加器A中“1”的个数来确定,“1”的个数是奇数P=1,反之P=0。 3.4 算术运算类指令(24条) 3.4.3乘、除法指令 【例3-31】 已知(A)=80H,(B)=32H,试求执行指令MUL AB的结果? 解:=00H,(B)=19H,OV=1,CY=0,P=O。 ((A)×(B)=1900H,计算结果大于FFH) 3.4 算术运算类指令(24条) 3.4.3乘、除法指令 2、除法指令 DIV AB ;A←(A)/(B)之商,B←(
文档评论(0)