
系统编程/ C165 / C163
下面的指令序列执行32 ×16位的除法:
MOV
MOV
DIV
农药残留联席会议
MOV
MOV
MDH , R1
MDL , R2
R3
cc_V , ERROR
R3 , MDH
R4 , MDL
;将分红MD寄存器。设置MDRIU
;将部分低到MD
;划分32/16签订, R3存放除数
;测试除溢出
;将剩余部分R3
;将整数结果为R4 。清除MDRIU
每当一个乘法或除法指令被中断时的工作正在进行中,地址
中断指令被压入堆栈, MULIP国旗在断路的PSW
例行程序设定。当中断例程退出, RETI指令,此位是隐含测试
旧的PSW之前从堆栈中弹出。如果MULIP = ' 1 '的乘法/除法指令被重新读取
从堆栈中(返回地址)弹出和RETI后,将完成位置
指令已被执行。
注意:
该MULIP标志的部分
被中断的任务的上下文
。当中断例程
(调度交换机例如,到另一个任务)不会返回到被中断的任务的MULIP
标志必须根据被切换的任务的上下文来设置或清除。
BCD计算
为BCD计算没有直接的支持,在C165 / C163提供。 BCD计算是
通过使用BCD数据转换为二进制数据,在执行所期望的计算,执行
标准数据类型,并且将结果返回给BCD数据。由于增强的性能
分工指令的二进制数据由10迅速转换为BCD数据,通过分工
D
.
从BCD数据为二进制数据转换是由多个位移位指令增强。这
提供类似的性能相比指令直接支持BCD数据类型,而没有
额外的硬件。
半导体集团
17-3