2、当(C)=0000~6655时,将S+(C)通道的内容送入DCH 25503出错标志位ON:控制数据C中的偏移量数据或堆栈长度不是BCD码;当:(C)=0000~6655时,S与S+(C)不在同一数据区;堆栈操作时,堆栈指针的值超出堆栈长度;间接寻址DM通道不存在。 相等标志位25506在S内容为0000时为ON LR00~15 DM0000~1023、 *DM0000~10236144~6655 、82 位传送指令 MOVB a○aMOVB MOVB/○(82) 按控制数据C的内容,将S中指定位传送到D的指定位。 传送前通道除传送的位以外没有变化。例见P82页图3。101 控制数据的内容 高位 低位 S:000~019、200~255 HR00~19、AR00~15、 LR00~15、 T/C000~127 DM(及*DM)0000~1023、 6144~6655 #0000~FFFF 源数据S 控制数据C 目的通道D MOVB 源CH的指定位 (00~15) 目的CH的指定位 (00~15) C:000~019、200~252 HR00~19、AR00~15 LR00~15 T/C000~127 DM(及*DM)0000~1023.6144~6655 *控制数据的内容是000~9999间的BCD码 当C指定的位不存在或间接寻址DM不存在时,25503ON,该指令不执行。 按照控制数据C的内容将S通道的指定桁(4个位)传送到D通道的指定桁(4个位),除传送桁以外S及D通道的其它桁内容不变。详见P82页图3。103 83 数字传送指令 MOVD a○MOVD/ aMOVD ○源数据S 控制数据C的内容 高位 低位 控制数据D 目的通道C D: 000~019、200~252 HR00~19、AR00~15 LR00~15 DM0000~1023 *DM0000~1023、 MOVD 不用 源通道的传送开始桁(0~3) 6144~6655 目的通道的接收开始 桁(0~3) 传送的桁数(0~3) 0:1桁4位 1:2桁8位 2:3桁12位 3:4桁16位 九、数据转换指令
FUN NO 23 BCD BIN 码转换 BIN aBIN ○aBIN(23) BIN/○ 源通道指令 符号 助记符 操作数 功 能/相关标志 操作数 将S通道的BCD码变换成二进制数据送入D通道,S通道数据不变 出错标志25503在S内容不是BCD码时ON,此时该指令不执行;相等标志位25506当转换结果为0000时ON S:000~019、200~252 HR00~19、AR00~15 LR00~15 T/C000~127(仅BCD BIN转换时) DM(及*DM)0000~1023.6144~6655 D:000~019、200~252 HR00~19、AR00~15 LR00~15。 DM0000~1023 *DM0000~1023、6144~6655 S 目的通道D 24 BIN BCD转换 BCD aBCD ○aBCD(24) BCD/○将S通道的二进制数变换成BCD码并送入D通道 25503:当转换完的BCD码大于9999时或间接寻址DM不存在时ON,此时该程序不执行 当转换结果为0000时,相等标志位25506ON 源通道S 目的通道D 76 译码MLPX aMLPX/○MLPX用桁指定数据(C)把S通道内的指定桁S、C:000~019、200~252 31
器指令 4 16 a○(76) 源通道S 控制数据C 目的开始通道D (4bit)的内容(0~F15)译码成一个16 Bit(位号)数向 D通道的16位中 桁指定数据(C)内容 变换开始桁号(0~3) HR00~19、AR00~15 、LR00~15 T/C000~127 *DM0000~1023、6144~6655 D:000~019、200~252 HR00~19、AR00~15 、LR00~15 DM0000~1023 *DM0000~1023、6144~6655 MLPX 输出(相应的位置成ON,其它置为OFF) DM0000~1023、6144~6655 译码桁数(0~3) 0:1桁 1:2桁 1:3桁 2:4桁 “0”固定 *C=0011时 源 S 3 2 1 0 目的D D+3 D+2 D+1 D 当D+3超出数据区域范围或间接寻址DM不存在时,出错标志25503ON 77 编码器指令 16 4 DMPX a○aDMPX/○DMPX根据控制数据C的内容把S开始的通道内的16 Bit数据ON状态的最上位的Bit位号变换成4 Bit(0~F)数据并向D通道的指定桁上输出 (将源通道状态为ON的最高位的位号编码成4 Bit 16进制数) *一次最多对四个源通道编码 桁指定的数据(C)的内容 编码结果输出开始桁(0~3) 编码数据的通道个数(0~3) 0:1CH 1:2CH 2:3CH 3:4CH “0”固定 详见P85页图3。110及3。111 当S+3超出数据区域范围或间接寻址DM通道不存在时为ON,此时该指令不执行 S:000~019、200~255 HR00~19、AR00~15 、LR00~15 T/C000~127 DM0000~1023、6144~6655 *DM0000~1023、6144~6655 D:000~019、200~252 HR00~19、AR00~15 、LR00~15 DM0000~1023 *DM0000~1023、6144~6655 C:000~019、200~252 HR00~19、AR00~15 、LR00~15 DM0000~1023 #0000~FFFF *DM0000~1023、6144~6655 (77) 源开始通道S 结果通道D 控制数据C DMPX 86 ASCII码变换指令 ASC a○a ASC(86) ASC/○根据控制数据(C)的内容将S通道的指定1桁(4 Bit 1桁,一次最多4桁即16 Bit)的内容变换成8 Bit的ASCII码数据并存入指定的D开始的通道的上位或下位8 Bit上输出 控制数据C的内容 S变换开始桁号(0~3) 变换桁数(0~3) 0:1桁 1:2桁 S:000~019、200~255 HR00~19、AR00~15 、LR00~15 T/C000~127 DM0000~1023、6144~6655 *DM0000~1023、6144~6655 C:000~019、200~252 HR00~19、AR00~15 、LR00~15 T/C000~127 DM0000~1023、6144~6655 *DM0000~1023、6144~6655 源通道S 控制数据C 结果开始通道D ASC 32
2:3桁 4:4桁 DCH的输出开始位置 0:低8位 1:高8位 奇偶校指定位 0:无校验 1:偶校验 2:奇校验 指校验位与ASCII码中的 “1”的个数应为偶数 指较验位与ASCII码中的“1”的个数应为奇数 *若C中指定从D的高位开始存放,则目的通道最多可占用3个 当控制数据错误、结果通道超出数据区范围、间接寻址DM不存在时,出错标志位25503ON,该指令不执行.例见P86 78 七段译码指令 SDEC a○a SDECSDEC/○D:000~019、200~252 HR00~19、AR00~15 、LR00~15 DM0000~1023 *DM0000~1023、6144~6655 根据控制数据C把S通道内的1桁的内容(0~F)(一次最多4桁)变换成8bit的位输出。如果C指定从D的上位(高8位)开始存放,则最多可占用3个目的通道,每个通道可放两桁的转换结果,其它七位分别对应于七段数码管的a、b、c、d、e、f、g段 控制数据C的内容 指定S中第一个被译码的桁号(0~3) 指定S中被译码的桁数 (0~3) 0:1桁 1:2桁 2:3桁 3:4桁 指定从D的高位还是低位开始 接受第1个转换结果 0:低8位 1:高8 位 固定为“0” 例见P88页3。116及3。117 S:000~019、200~255 HR00~19、AR00~15 、LR00~15 T/C000~127 DM0000~1023、6144~6655 *DM0000~1023、6144~6655 C:000~019、200~252 T/C000~127 DM0000~1023、6144~6655 *DM0000~1023、6144~6655 #0000~FFFF D:000~019、200~252 HR00~19、AR00~15 、LR00~15 DM0000~1023 *DM0000~1023、6144~6655 (78) 源通道S(二进制) 七段数据并在指定的DCH--的上位或下SDEC 控制数据C 目的开始通道D 分低8位和高8位,bit7和bit15不用,HR00~19、AR00~15 、LR00~15 1、BIN BCD码变换 SCH 1 0 E C X16 X16 X16 X16
3
2
1
BIN BCD BIN BCD DCH 4 3 3 2 3
2
1
0
0
X10 X10 X10 X10
1X163+14(E)X161+12(C)X160=4096+224+12=4332
33
反过来,将四桁BCD码变换成四桁16进制数: 16*16*16=4096 4332-4096=236 16*16=256而14*16=224 236-224=12
因此BCD码4332可变换为16进制数10E(14)C(12)
2、把桁(4bit)的数据变换成ASCII码 变换数据内容 变换输出数据 数据 一桁(4bit)内容 代码 MSB 8bit LSB 0 0 0 0 0 $30 * 0 1 1 0 0 0 0 1 0 0 0 1 $31 * 0 1 1 0 0 0 1 2 0 0 1 0 $32 * 0 1 1 0 0 1 0 3 0 0 1 1 $33 * 0 1 1 0 0 1 1 4 0 1 0 0 $34 * 0 1 1 0 1 0 0 5 0 1 0 1 $35 * 0 1 1 0 1 0 1 6 0 1 1 0 $36 * 0 1 1 0 1 1 0 7 0 1 1 1 $37 * 0 1 1 0 1 1 1 8 1 0 0 0 $38 * 0 1 1 1 0 0 0 9 1 0 0 1 $39 * 0 1 1 1 0 0 1 A 1 0 1 0 $41 * 1 0 0 0 0 0 1 B 1 0 1 1 $42 * 1 0 0 0 0 1 0 C 1 1 0 0 $43 * 1 0 0 0 0 1 1 D 1 1 0 1 $44 * 1 0 0 0 1 0 0 E 1 1 1 0 $45 * 1 0 0 0 1 0 1 F 1 1 1 1 $46 * 1 0 0 0 1 1 0 其中*为奇偶Bit,依奇偶指定及输出数据的其余七位状况而变化
3、把桁(4Bit)的内容0~F译码为8 Bit的七段数据时,如下表所示: 变换数据位的内容 变换输出数据 7段显示 数值 Bit内容 g f e d c b a a 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 0 0 0 1 1 0 2 0 0 1 0 0 1 0 1 1 0 1 1 3 0 0 1 1 0 1 0 0 1 1 1 1 g 4 0 1 0 0 0 1 1 0 0 1 1 0 5 0 1 0 1 0 1 1 0 1 1 0 1
34
6 7 8 9 A B C D E F 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 a b c d e f g f b e c d 十、十进制运算指令
FUN 指令 NO 40 41 进位位置1指令 进位位置0指令 30 BCD码加法指令 ADD aADD ○aADD(30) ADD/○符号 助记符 操作数 功 能/相关标志 操作数 STC aSTC ○aSTC(40) STC/○进位标志位被置为1(0) 做加、减法时,进位位要参与运算,一般要在运算之前清进位位 aCLC(41 CLC/○ CLC aCLC ○将S1、S2通道内的BCD码和CY位相加,结果存入结果通道D中。 S1+S2+CY D 、CY 若和大于9999时,将把CY25504置为ON;若和为0000时,相等标志25506为ON 当S1、S2中为非BCD码或间接寻址DM不存在时,出错标志位25503ON,此时该指令不执行 *由于CY参与运算,一般运算前应先清CY S1、S2: 000~019、200~255 HR00~19、AR00~15 、LR00~15 T/C000~127 DM0000~10236144~6655 *DM0000~10236144~6655 #0000~9999 、、被加数据或被加数据CHS1 加数数据或加数数据CHS2 结果通道D 31 BCD码减法指令 SUB a SUB ○a SUB(31) SUB/○S1的内容减S2的内容及CY,结果存入D通道。若结果为负,置位CY,而D中的内容为十进制结果的二进制补码,要想将D中的内容转换为实际结果,应先清CY,再用0减去D中的内容 S1—S2—CY D、CY *由于CY参与运算,一般运算前应先清CY 标志位:当S1、S2中有非BCD码时或间接寻址DM不存在,出错标志25503ON 当被减数小于减数时,有借位,CY 位25504为ON 当差为0000时,相等标志位25506ON 被减数据或被减数据CHS1 减数数据或减数数据CHS2 D:000~019、结果通道D 200~255 HR00~19、AR00~15 、LR00~15 DM0000~1023 *DM0000~10246144~6655 、 35