该SAM47指令集是专为支持通常成立于大多数大型寄存器文件
KS57系列微控制器。的SAM47的指令集包括用于数据的1位, 4位和8位的指令
操纵,逻辑和算术运算,程序控制和CPU控制。外设I / O指令
硬件设备的灵活和易于使用。符号硬件名称可以被取代的指令
操作到位的实际地址。在SAM47指令集的其他重要特性包括:
- 长说明1字节引用( REF指令)
- 冗余指令减少(字符串效果)
- 跳过功能的ADC和SBC指令
指令操作数符合每个指令定义的操作数格式。几个指令有多个
操作数格式。
预定义的值或标签可寻址立即数时使用的指令操作数。许多的
对于特定的寄存器和标志符号也可以被取代的标签的操作,例如多巴胺, MEMA , memb结构,
b和等等。使用说明标签可以大大简化编程和调试任务。
在本节中,以下SAM47指令集的特性进行了详细的描述:
- 教学参考区
- 指令冗余度降低
- 灵活的位操作
- ADC和SBC指令跳转条件
?????????????????????????????????????????????????? ??????????? ?????????????? ?? ! " # $ ? " # ? $ ? % ? && $ ?
? % ? && ? “???
( ) *
+
指令参考区
使用1个字节REF (参考)指令,你可以参考存储在地址0020H - 007FH说明
程序存储器( REF指令查找表) 。通过REF引用的位置可能包含2 1-
字节指令或一个2字节指令。该指令的起始地址被引用绝
始终是偶数。
3个字节的指令,如日本特或CALL也可以使用REF引用。引用这3个字节的指令,
2字节的伪指令TJP和TCALL必须写入基准,而不是特和CALL 。
在执行REF指令时, PC不会递增。后执行,程序的指令
执行顺序恢复的地址,立即REF指令之后。通过使用REF指令
执行指令比一个字节大,以及分支机构和子程序,可以减少程序的大小。
总之, REF指令可以通过三种方式来使用:
- 使用1字节REF指令以执行一个2字节或两个1字节的指令;
- 分支的任何位置通过引用被存储在查找表中的一个分支地址;
- 通过引用被存储在查找表中的呼叫地址调用子例程在任何位置。
如果需要的话,一个REF指令可通过跳跃操作之前在与REF装置被规避
执行顺序。此外,紧接一个REF以下的指令,也可以通过使用跳过
适当的参考指令或指令。
两个字节指令可以通过使用REF指令引用(一个例外是XCH A , DA ) 。如果MSB值
在基准区域中的第一个字节的指令为“0 ”时,指令不能由一个REF引用
指令。因此,如果使用REF引用两个1字节的指令存储在参考区域中,具体
组合必须用于在第一和第二个1字节的指令。
这些组合的例子如表5-1所示。
表5-1 。对于REF查找的有效期1个字节的指令组合
第1个字节的指令
指令
LD
操作数
A, #im
第二个1字节指令
指令
INCS
INCS
DECS
LD
A, @RRa
INCS
INCS
DECS
LD
清零处理,A
INCS
INCS
DECS
, *
-./
操作数
R
RRB
R
R
RRB
R
R
RRB
R
降低指令冗余
当多余的指令,如LD A , # IM和LD EA , # IMM被连续使用一个程序序列,
只有第一指令被执行。随后的冗余指令被忽略,即,它们被处理
像NOP指令。当LD HL , # IMM指令连续使用,多余的说明也
忽略不计。
在下面的示例中,只有“ LD A , #im ”指令被执行。 8位加载指令紧随其后
被解释为多余的,被忽略:
LD
LD
A, # IM
EA , # IMM
;负载4位立即数( #im )到累加器
;将8位立即数( #IMM ),以延长
;累加器
在这个例子中,语句“ LD A , # 2H ”和“ LD A , # 3H '被忽略:
BITR
LD
LD
LD
LD
教统局
A,#1H
A,#2H
A,#3H
23H,A
;
;
;
;
执行指令
忽略,冗余指令
忽略,冗余指令
执行指令, 023H
←
#1H
如果连续LD HL , #IMM指令(装入8位立即数到8位存储器指针对, HL )是
检测到的,只有第一LD被执行并且紧跟在LD被忽略。例如,
LD
LD
LD
LD
LD
HL,#10H
HL,#20H
A,#3H
EA,#35H
@ HL ,A
;
;
;
;
;
HL
←
10H
忽略,冗余指令
A
←
3H
忽略,冗余指令
(10H)
←
3H
如果用一个REF指令的指令引用的冗余度的效果,适用下列条件:
- 如果指令
前
在REF具有冗余的效果,该效果被取消,并且被引用的
指令不会被跳过。
- 如果指令
以下
在REF具有冗余的效果,以下将REF的指令被跳过。
编程提示 -
ABC
ORG
LD
ORG
该指令冗余效应的例子
;存储在REF指令参考区
0020H
EA,#30H
0080H
LD
REF
EA,#40H
ABC
;遇到裁员的影响
;没有跳转( EA
←
#30H)
REF
LD
ABC
EA,#50H
; EA
←
#30H
;跳
灵活的位操作
除了像集,清晰正常的位操作指令, SAM47指令集也可以执行位
测试中,位传输,和位布尔运算。位也可以解决,并通过特殊的位操作
寻址模式。三类位寻址的支持:
- mema.b
- MEMB @ L
- @ H + DA.b
这些位寻址模式的参数进行更详细的表5-2中所述。
表5-2 。位寻址模式和参数
寻址模式
mema.b
MEMB 。 @ L
@ H + DA.b
端口
BSCx ,端口
所有位可操作外设
可寻址外设
雇员再培训局,教育统筹局, IS1 , IS0 , IEX , IRQx
FB0H-FBFH
FF0H-FFFH
FC0H-FFFH
存储库的所有位被指定
教育统筹局及SMB是位可操作
地址范围
,
0*%
以下说明具有跳跃功能时,溢出或借位:
XCHI
XCHD
LDI
LDD
INCS
DECS
ADS
SBS
如果存在溢出或从一个增量或减量的结果借用,跳跃信号生成和
跳过执行。然而,进位标志值不受影响。
该指令BTST , BTSF和安博也产生跳跃信号,并执行跳跃,当他们遇到一个跳跃
条件和进位标志值也不受影响。
影响进位标志说明
是不产生跳跃的信号,但它确实会影响进位标志指令只有如下:
ADC
SBC
SCF
RCF
CCF
RRC
ADC和SBC指令跳转条件
当指令“ ADC A , @ HL ”和“ SBC A, @ HL '可以生成跳过信号,并设置或清除进位标志,
他们与指令“ ADS A,# IM '组合执行。
如果一个“ ADS A,# IM '指令紧跟一个” ADC A , @ HL '或' SBC A, @ HL '指令程序
序列中, ADS指令不跳过下面ADS的指令,即使它有一个搜索功能。如果,
然而, “ ADC A , @ HL '或' SBC A,@ HL '指令后面紧跟着一个” ADS A,# IM '指令,
ADC (或SBC )跳过溢出(或者如果没有借位)的指令,立即ADS以下内容,
程序继续执行。表5-3包含了更多的信息和示例“ ADC A , @ HL '和
“ SBC A, @ HL ”跳过功能。
六味地黄丸
BAND
BOR
BXOR
IRET
C, (操作数)
C, (操作数)
C, (操作数)
C, (操作数)
表5-3 。跳过条件ADC和SBC指令
样品
指令序列
ADC A , @ HL
ADS A, # IM
xxx
xxx
SBC A, @ HL
ADS A, # IM
xxx
xxx
1
2
3
4
1
2
3
4
如果结果
说明1 :
溢流
无溢出
借
无借
然后,执行
序列是:
1, 3, 4
1, 2, 3, 4
1, 2, 3, 4
1, 3, 4
原因
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
该SAM47指令集是专为支持通常成立于大多数大型寄存器文件
KS57系列微控制器。的SAM47的指令集包括用于数据的1位, 4位和8位的指令
操纵,逻辑和算术运算,程序控制和CPU控制。外设I / O指令
硬件设备的灵活和易于使用。符号硬件名称可以被取代的指令
操作到位的实际地址。在SAM47指令集的其他重要特性包括:
- 长说明1字节引用( REF指令)
- 冗余指令减少(字符串效果)
- 跳过功能的ADC和SBC指令
指令操作数符合每个指令定义的操作数格式。几个指令有多个
操作数格式。
预定义的值或标签可寻址立即数时使用的指令操作数。许多的
对于特定的寄存器和标志符号也可以被取代的标签的操作,例如多巴胺, MEMA , memb结构,
b和等等。使用说明标签可以大大简化编程和调试任务。
在本节中,以下SAM47指令集的特性进行了详细的描述:
- 教学参考区
- 指令冗余度降低
- 灵活的位操作
- ADC和SBC指令跳转条件
?????????????????????????????????????????????????? ??????????? ?????????????? ?? ! " # $ ? " # ? $ ? % ? && $ ?
? % ? && ? “???
( ) *
+
指令参考区
使用1个字节REF (参考)指令,你可以参考存储在地址0020H - 007FH说明
程序存储器( REF指令查找表) 。通过REF引用的位置可能包含2 1-
字节指令或一个2字节指令。该指令的起始地址被引用绝
始终是偶数。
3个字节的指令,如日本特或CALL也可以使用REF引用。引用这3个字节的指令,
2字节的伪指令TJP和TCALL必须写入基准,而不是特和CALL 。
在执行REF指令时, PC不会递增。后执行,程序的指令
执行顺序恢复的地址,立即REF指令之后。通过使用REF指令
执行指令比一个字节大,以及分支机构和子程序,可以减少程序的大小。
总之, REF指令可以通过三种方式来使用:
- 使用1字节REF指令以执行一个2字节或两个1字节的指令;
- 分支的任何位置通过引用被存储在查找表中的一个分支地址;
- 通过引用被存储在查找表中的呼叫地址调用子例程在任何位置。
如果需要的话,一个REF指令可通过跳跃操作之前在与REF装置被规避
执行顺序。此外,紧接一个REF以下的指令,也可以通过使用跳过
适当的参考指令或指令。
两个字节指令可以通过使用REF指令引用(一个例外是XCH A , DA ) 。如果MSB值
在基准区域中的第一个字节的指令为“0 ”时,指令不能由一个REF引用
指令。因此,如果使用REF引用两个1字节的指令存储在参考区域中,具体
组合必须用于在第一和第二个1字节的指令。
这些组合的例子如表5-1所示。
表5-1 。对于REF查找的有效期1个字节的指令组合
第1个字节的指令
指令
LD
操作数
A, #im
第二个1字节指令
指令
INCS
INCS
DECS
LD
A, @RRa
INCS
INCS
DECS
LD
清零处理,A
INCS
INCS
DECS
, *
-./
操作数
R
RRB
R
R
RRB
R
R
RRB
R
降低指令冗余
当多余的指令,如LD A , # IM和LD EA , # IMM被连续使用一个程序序列,
只有第一指令被执行。随后的冗余指令被忽略,即,它们被处理
像NOP指令。当LD HL , # IMM指令连续使用,多余的说明也
忽略不计。
在下面的示例中,只有“ LD A , #im ”指令被执行。 8位加载指令紧随其后
被解释为多余的,被忽略:
LD
LD
A, # IM
EA , # IMM
;负载4位立即数( #im )到累加器
;将8位立即数( #IMM ),以延长
;累加器
在这个例子中,语句“ LD A , # 2H ”和“ LD A , # 3H '被忽略:
BITR
LD
LD
LD
LD
教统局
A,#1H
A,#2H
A,#3H
23H,A
;
;
;
;
执行指令
忽略,冗余指令
忽略,冗余指令
执行指令, 023H
←
#1H
如果连续LD HL , #IMM指令(装入8位立即数到8位存储器指针对, HL )是
检测到的,只有第一LD被执行并且紧跟在LD被忽略。例如,
LD
LD
LD
LD
LD
HL,#10H
HL,#20H
A,#3H
EA,#35H
@ HL ,A
;
;
;
;
;
HL
←
10H
忽略,冗余指令
A
←
3H
忽略,冗余指令
(10H)
←
3H
如果用一个REF指令的指令引用的冗余度的效果,适用下列条件:
- 如果指令
前
在REF具有冗余的效果,该效果被取消,并且被引用的
指令不会被跳过。
- 如果指令
以下
在REF具有冗余的效果,以下将REF的指令被跳过。
编程提示 -
ABC
ORG
LD
ORG
该指令冗余效应的例子
;存储在REF指令参考区
0020H
EA,#30H
0080H
LD
REF
EA,#40H
ABC
;遇到裁员的影响
;没有跳转( EA
←
#30H)
REF
LD
ABC
EA,#50H
; EA
←
#30H
;跳
灵活的位操作
除了像集,清晰正常的位操作指令, SAM47指令集也可以执行位
测试中,位传输,和位布尔运算。位也可以解决,并通过特殊的位操作
寻址模式。三类位寻址的支持:
- mema.b
- MEMB @ L
- @ H + DA.b
这些位寻址模式的参数进行更详细的表5-2中所述。
表5-2 。位寻址模式和参数
寻址模式
mema.b
MEMB 。 @ L
@ H + DA.b
端口
BSCx ,端口
所有位可操作外设
可寻址外设
雇员再培训局,教育统筹局, IS1 , IS0 , IEX , IRQx
FB0H-FBFH
FF0H-FFFH
FC0H-FFFH
存储库的所有位被指定
教育统筹局及SMB是位可操作
地址范围
,
0*%
以下说明具有跳跃功能时,溢出或借位:
XCHI
XCHD
LDI
LDD
INCS
DECS
ADS
SBS
如果存在溢出或从一个增量或减量的结果借用,跳跃信号生成和
跳过执行。然而,进位标志值不受影响。
该指令BTST , BTSF和安博也产生跳跃信号,并执行跳跃,当他们遇到一个跳跃
条件和进位标志值也不受影响。
影响进位标志说明
是不产生跳跃的信号,但它确实会影响进位标志指令只有如下:
ADC
SBC
SCF
RCF
CCF
RRC
ADC和SBC指令跳转条件
当指令“ ADC A , @ HL ”和“ SBC A, @ HL '可以生成跳过信号,并设置或清除进位标志,
他们与指令“ ADS A,# IM '组合执行。
如果一个“ ADS A,# IM '指令紧跟一个” ADC A , @ HL '或' SBC A, @ HL '指令程序
序列中, ADS指令不跳过下面ADS的指令,即使它有一个搜索功能。如果,
然而, “ ADC A , @ HL '或' SBC A,@ HL '指令后面紧跟着一个” ADS A,# IM '指令,
ADC (或SBC )跳过溢出(或者如果没有借位)的指令,立即ADS以下内容,
程序继续执行。表5-3包含了更多的信息和示例“ ADC A , @ HL '和
“ SBC A, @ HL ”跳过功能。
六味地黄丸
BAND
BOR
BXOR
IRET
C, (操作数)
C, (操作数)
C, (操作数)
C, (操作数)
表5-3 。跳过条件ADC和SBC指令
样品
指令序列
ADC A , @ HL
ADS A, # IM
xxx
xxx
SBC A, @ HL
ADS A, # IM
xxx
xxx
1
2
3
4
1
2
3
4
如果结果
说明1 :
溢流
无溢出
借
无借
然后,执行
序列是:
1, 3, 4
1, 2, 3, 4
1, 2, 3, 4
1, 3, 4
原因
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
该SAM47指令集是专为支持通常成立于大多数大型寄存器文件
KS57系列微控制器。的SAM47的指令集包括用于数据的1位, 4位和8位的指令
操纵,逻辑和算术运算,程序控制和CPU控制。外设I / O指令
硬件设备的灵活和易于使用。符号硬件名称可以被取代的指令
操作到位的实际地址。在SAM47指令集的其他重要特性包括:
- 长说明1字节引用( REF指令)
- 冗余指令减少(字符串效果)
- 跳过功能的ADC和SBC指令
指令操作数符合每个指令定义的操作数格式。几个指令有多个
操作数格式。
预定义的值或标签可寻址立即数时使用的指令操作数。许多的
对于特定的寄存器和标志符号也可以被取代的标签的操作,例如多巴胺, MEMA , memb结构,
b和等等。使用说明标签可以大大简化编程和调试任务。
在本节中,以下SAM47指令集的特性进行了详细的描述:
- 教学参考区
- 指令冗余度降低
- 灵活的位操作
- ADC和SBC指令跳转条件
?????????????????????????????????????????????????? ??????????? ?????????????? ?? ! " # $ ? " # ? $ ? % ? && $ ?
? % ? && ? “???
( ) *
+
指令参考区
使用1个字节REF (参考)指令,你可以参考存储在地址0020H - 007FH说明
程序存储器( REF指令查找表) 。通过REF引用的位置可能包含2 1-
字节指令或一个2字节指令。该指令的起始地址被引用绝
始终是偶数。
3个字节的指令,如日本特或CALL也可以使用REF引用。引用这3个字节的指令,
2字节的伪指令TJP和TCALL必须写入基准,而不是特和CALL 。
在执行REF指令时, PC不会递增。后执行,程序的指令
执行顺序恢复的地址,立即REF指令之后。通过使用REF指令
执行指令比一个字节大,以及分支机构和子程序,可以减少程序的大小。
总之, REF指令可以通过三种方式来使用:
- 使用1字节REF指令以执行一个2字节或两个1字节的指令;
- 分支的任何位置通过引用被存储在查找表中的一个分支地址;
- 通过引用被存储在查找表中的呼叫地址调用子例程在任何位置。
如果需要的话,一个REF指令可通过跳跃操作之前在与REF装置被规避
执行顺序。此外,紧接一个REF以下的指令,也可以通过使用跳过
适当的参考指令或指令。
两个字节指令可以通过使用REF指令引用(一个例外是XCH A , DA ) 。如果MSB值
在基准区域中的第一个字节的指令为“0 ”时,指令不能由一个REF引用
指令。因此,如果使用REF引用两个1字节的指令存储在参考区域中,具体
组合必须用于在第一和第二个1字节的指令。
这些组合的例子如表5-1所示。
表5-1 。对于REF查找的有效期1个字节的指令组合
第1个字节的指令
指令
LD
操作数
A, #im
第二个1字节指令
指令
INCS
INCS
DECS
LD
A, @RRa
INCS
INCS
DECS
LD
清零处理,A
INCS
INCS
DECS
, *
-./
操作数
R
RRB
R
R
RRB
R
R
RRB
R
降低指令冗余
当多余的指令,如LD A , # IM和LD EA , # IMM被连续使用一个程序序列,
只有第一指令被执行。随后的冗余指令被忽略,即,它们被处理
像NOP指令。当LD HL , # IMM指令连续使用,多余的说明也
忽略不计。
在下面的示例中,只有“ LD A , #im ”指令被执行。 8位加载指令紧随其后
被解释为多余的,被忽略:
LD
LD
A, # IM
EA , # IMM
;负载4位立即数( #im )到累加器
;将8位立即数( #IMM ),以延长
;累加器
在这个例子中,语句“ LD A , # 2H ”和“ LD A , # 3H '被忽略:
BITR
LD
LD
LD
LD
教统局
A,#1H
A,#2H
A,#3H
23H,A
;
;
;
;
执行指令
忽略,冗余指令
忽略,冗余指令
执行指令, 023H
←
#1H
如果连续LD HL , #IMM指令(装入8位立即数到8位存储器指针对, HL )是
检测到的,只有第一LD被执行并且紧跟在LD被忽略。例如,
LD
LD
LD
LD
LD
HL,#10H
HL,#20H
A,#3H
EA,#35H
@ HL ,A
;
;
;
;
;
HL
←
10H
忽略,冗余指令
A
←
3H
忽略,冗余指令
(10H)
←
3H
如果用一个REF指令的指令引用的冗余度的效果,适用下列条件:
- 如果指令
前
在REF具有冗余的效果,该效果被取消,并且被引用的
指令不会被跳过。
- 如果指令
以下
在REF具有冗余的效果,以下将REF的指令被跳过。
编程提示 -
ABC
ORG
LD
ORG
该指令冗余效应的例子
;存储在REF指令参考区
0020H
EA,#30H
0080H
LD
REF
EA,#40H
ABC
;遇到裁员的影响
;没有跳转( EA
←
#30H)
REF
LD
ABC
EA,#50H
; EA
←
#30H
;跳
灵活的位操作
除了像集,清晰正常的位操作指令, SAM47指令集也可以执行位
测试中,位传输,和位布尔运算。位也可以解决,并通过特殊的位操作
寻址模式。三类位寻址的支持:
- mema.b
- MEMB @ L
- @ H + DA.b
这些位寻址模式的参数进行更详细的表5-2中所述。
表5-2 。位寻址模式和参数
寻址模式
mema.b
MEMB 。 @ L
@ H + DA.b
端口
BSCx ,端口
所有位可操作外设
可寻址外设
雇员再培训局,教育统筹局, IS1 , IS0 , IEX , IRQx
FB0H-FBFH
FF0H-FFFH
FC0H-FFFH
存储库的所有位被指定
教育统筹局及SMB是位可操作
地址范围
,
0*%
以下说明具有跳跃功能时,溢出或借位:
XCHI
XCHD
LDI
LDD
INCS
DECS
ADS
SBS
如果存在溢出或从一个增量或减量的结果借用,跳跃信号生成和
跳过执行。然而,进位标志值不受影响。
该指令BTST , BTSF和安博也产生跳跃信号,并执行跳跃,当他们遇到一个跳跃
条件和进位标志值也不受影响。
影响进位标志说明
是不产生跳跃的信号,但它确实会影响进位标志指令只有如下:
ADC
SBC
SCF
RCF
CCF
RRC
ADC和SBC指令跳转条件
当指令“ ADC A , @ HL ”和“ SBC A, @ HL '可以生成跳过信号,并设置或清除进位标志,
他们与指令“ ADS A,# IM '组合执行。
如果一个“ ADS A,# IM '指令紧跟一个” ADC A , @ HL '或' SBC A, @ HL '指令程序
序列中, ADS指令不跳过下面ADS的指令,即使它有一个搜索功能。如果,
然而, “ ADC A , @ HL '或' SBC A,@ HL '指令后面紧跟着一个” ADS A,# IM '指令,
ADC (或SBC )跳过溢出(或者如果没有借位)的指令,立即ADS以下内容,
程序继续执行。表5-3包含了更多的信息和示例“ ADC A , @ HL '和
“ SBC A, @ HL ”跳过功能。
六味地黄丸
BAND
BOR
BXOR
IRET
C, (操作数)
C, (操作数)
C, (操作数)
C, (操作数)
表5-3 。跳过条件ADC和SBC指令
样品
指令序列
ADC A , @ HL
ADS A, # IM
xxx
xxx
SBC A, @ HL
ADS A, # IM
xxx
xxx
1
2
3
4
1
2
3
4
如果结果
说明1 :
溢流
无溢出
借
无借
然后,执行
序列是:
1, 3, 4
1, 2, 3, 4
1, 2, 3, 4
1, 3, 4
原因
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
该SAM47指令集是专为支持通常成立于大多数大型寄存器文件
KS57系列微控制器。的SAM47的指令集包括用于数据的1位, 4位和8位的指令
操纵,逻辑和算术运算,程序控制和CPU控制。外设I / O指令
硬件设备的灵活和易于使用。符号硬件名称可以被取代的指令
操作到位的实际地址。在SAM47指令集的其他重要特性包括:
- 长说明1字节引用( REF指令)
- 冗余指令减少(字符串效果)
- 跳过功能的ADC和SBC指令
指令操作数符合每个指令定义的操作数格式。几个指令有多个
操作数格式。
预定义的值或标签可寻址立即数时使用的指令操作数。许多的
对于特定的寄存器和标志符号也可以被取代的标签的操作,例如多巴胺, MEMA , memb结构,
b和等等。使用说明标签可以大大简化编程和调试任务。
在本节中,以下SAM47指令集的特性进行了详细的描述:
- 教学参考区
- 指令冗余度降低
- 灵活的位操作
- ADC和SBC指令跳转条件
?????????????????????????????????????????????????? ??????????? ?????????????? ?? ! " # $ ? " # ? $ ? % ? && $ ?
? % ? && ? “???
( ) *
+
指令参考区
使用1个字节REF (参考)指令,你可以参考存储在地址0020H - 007FH说明
程序存储器( REF指令查找表) 。通过REF引用的位置可能包含2 1-
字节指令或一个2字节指令。该指令的起始地址被引用绝
始终是偶数。
3个字节的指令,如日本特或CALL也可以使用REF引用。引用这3个字节的指令,
2字节的伪指令TJP和TCALL必须写入基准,而不是特和CALL 。
在执行REF指令时, PC不会递增。后执行,程序的指令
执行顺序恢复的地址,立即REF指令之后。通过使用REF指令
执行指令比一个字节大,以及分支机构和子程序,可以减少程序的大小。
总之, REF指令可以通过三种方式来使用:
- 使用1字节REF指令以执行一个2字节或两个1字节的指令;
- 分支的任何位置通过引用被存储在查找表中的一个分支地址;
- 通过引用被存储在查找表中的呼叫地址调用子例程在任何位置。
如果需要的话,一个REF指令可通过跳跃操作之前在与REF装置被规避
执行顺序。此外,紧接一个REF以下的指令,也可以通过使用跳过
适当的参考指令或指令。
两个字节指令可以通过使用REF指令引用(一个例外是XCH A , DA ) 。如果MSB值
在基准区域中的第一个字节的指令为“0 ”时,指令不能由一个REF引用
指令。因此,如果使用REF引用两个1字节的指令存储在参考区域中,具体
组合必须用于在第一和第二个1字节的指令。
这些组合的例子如表5-1所示。
表5-1 。对于REF查找的有效期1个字节的指令组合
第1个字节的指令
指令
LD
操作数
A, #im
第二个1字节指令
指令
INCS
INCS
DECS
LD
A, @RRa
INCS
INCS
DECS
LD
清零处理,A
INCS
INCS
DECS
, *
-./
操作数
R
RRB
R
R
RRB
R
R
RRB
R
降低指令冗余
当多余的指令,如LD A , # IM和LD EA , # IMM被连续使用一个程序序列,
只有第一指令被执行。随后的冗余指令被忽略,即,它们被处理
像NOP指令。当LD HL , # IMM指令连续使用,多余的说明也
忽略不计。
在下面的示例中,只有“ LD A , #im ”指令被执行。 8位加载指令紧随其后
被解释为多余的,被忽略:
LD
LD
A, # IM
EA , # IMM
;负载4位立即数( #im )到累加器
;将8位立即数( #IMM ),以延长
;累加器
在这个例子中,语句“ LD A , # 2H ”和“ LD A , # 3H '被忽略:
BITR
LD
LD
LD
LD
教统局
A,#1H
A,#2H
A,#3H
23H,A
;
;
;
;
执行指令
忽略,冗余指令
忽略,冗余指令
执行指令, 023H
←
#1H
如果连续LD HL , #IMM指令(装入8位立即数到8位存储器指针对, HL )是
检测到的,只有第一LD被执行并且紧跟在LD被忽略。例如,
LD
LD
LD
LD
LD
HL,#10H
HL,#20H
A,#3H
EA,#35H
@ HL ,A
;
;
;
;
;
HL
←
10H
忽略,冗余指令
A
←
3H
忽略,冗余指令
(10H)
←
3H
如果用一个REF指令的指令引用的冗余度的效果,适用下列条件:
- 如果指令
前
在REF具有冗余的效果,该效果被取消,并且被引用的
指令不会被跳过。
- 如果指令
以下
在REF具有冗余的效果,以下将REF的指令被跳过。
编程提示 -
ABC
ORG
LD
ORG
该指令冗余效应的例子
;存储在REF指令参考区
0020H
EA,#30H
0080H
LD
REF
EA,#40H
ABC
;遇到裁员的影响
;没有跳转( EA
←
#30H)
REF
LD
ABC
EA,#50H
; EA
←
#30H
;跳
灵活的位操作
除了像集,清晰正常的位操作指令, SAM47指令集也可以执行位
测试中,位传输,和位布尔运算。位也可以解决,并通过特殊的位操作
寻址模式。三类位寻址的支持:
- mema.b
- MEMB @ L
- @ H + DA.b
这些位寻址模式的参数进行更详细的表5-2中所述。
表5-2 。位寻址模式和参数
寻址模式
mema.b
MEMB 。 @ L
@ H + DA.b
端口
BSCx ,端口
所有位可操作外设
可寻址外设
雇员再培训局,教育统筹局, IS1 , IS0 , IEX , IRQx
FB0H-FBFH
FF0H-FFFH
FC0H-FFFH
存储库的所有位被指定
教育统筹局及SMB是位可操作
地址范围
,
0*%
以下说明具有跳跃功能时,溢出或借位:
XCHI
XCHD
LDI
LDD
INCS
DECS
ADS
SBS
如果存在溢出或从一个增量或减量的结果借用,跳跃信号生成和
跳过执行。然而,进位标志值不受影响。
该指令BTST , BTSF和安博也产生跳跃信号,并执行跳跃,当他们遇到一个跳跃
条件和进位标志值也不受影响。
影响进位标志说明
是不产生跳跃的信号,但它确实会影响进位标志指令只有如下:
ADC
SBC
SCF
RCF
CCF
RRC
ADC和SBC指令跳转条件
当指令“ ADC A , @ HL ”和“ SBC A, @ HL '可以生成跳过信号,并设置或清除进位标志,
他们与指令“ ADS A,# IM '组合执行。
如果一个“ ADS A,# IM '指令紧跟一个” ADC A , @ HL '或' SBC A, @ HL '指令程序
序列中, ADS指令不跳过下面ADS的指令,即使它有一个搜索功能。如果,
然而, “ ADC A , @ HL '或' SBC A,@ HL '指令后面紧跟着一个” ADS A,# IM '指令,
ADC (或SBC )跳过溢出(或者如果没有借位)的指令,立即ADS以下内容,
程序继续执行。表5-3包含了更多的信息和示例“ ADC A , @ HL '和
“ SBC A, @ HL ”跳过功能。
六味地黄丸
BAND
BOR
BXOR
IRET
C, (操作数)
C, (操作数)
C, (操作数)
C, (操作数)
表5-3 。跳过条件ADC和SBC指令
样品
指令序列
ADC A , @ HL
ADS A, # IM
xxx
xxx
SBC A, @ HL
ADS A, # IM
xxx
xxx
1
2
3
4
1
2
3
4
如果结果
说明1 :
溢流
无溢出
借
无借
然后,执行
序列是:
1, 3, 4
1, 2, 3, 4
1, 2, 3, 4
1, 3, 4
原因
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
该SAM47指令集是专为支持通常成立于大多数大型寄存器文件
KS57系列微控制器。的SAM47的指令集包括用于数据的1位, 4位和8位的指令
操纵,逻辑和算术运算,程序控制和CPU控制。外设I / O指令
硬件设备的灵活和易于使用。符号硬件名称可以被取代的指令
操作到位的实际地址。在SAM47指令集的其他重要特性包括:
- 长说明1字节引用( REF指令)
- 冗余指令减少(字符串效果)
- 跳过功能的ADC和SBC指令
指令操作数符合每个指令定义的操作数格式。几个指令有多个
操作数格式。
预定义的值或标签可寻址立即数时使用的指令操作数。许多的
对于特定的寄存器和标志符号也可以被取代的标签的操作,例如多巴胺, MEMA , memb结构,
b和等等。使用说明标签可以大大简化编程和调试任务。
在本节中,以下SAM47指令集的特性进行了详细的描述:
- 教学参考区
- 指令冗余度降低
- 灵活的位操作
- ADC和SBC指令跳转条件
?????????????????????????????????????????????????? ??????????? ?????????????? ?? ! " # $ ? " # ? $ ? % ? && $ ?
? % ? && ? “???
( ) *
+
指令参考区
使用1个字节REF (参考)指令,你可以参考存储在地址0020H - 007FH说明
程序存储器( REF指令查找表) 。通过REF引用的位置可能包含2 1-
字节指令或一个2字节指令。该指令的起始地址被引用绝
始终是偶数。
3个字节的指令,如日本特或CALL也可以使用REF引用。引用这3个字节的指令,
2字节的伪指令TJP和TCALL必须写入基准,而不是特和CALL 。
在执行REF指令时, PC不会递增。后执行,程序的指令
执行顺序恢复的地址,立即REF指令之后。通过使用REF指令
执行指令比一个字节大,以及分支机构和子程序,可以减少程序的大小。
总之, REF指令可以通过三种方式来使用:
- 使用1字节REF指令以执行一个2字节或两个1字节的指令;
- 分支的任何位置通过引用被存储在查找表中的一个分支地址;
- 通过引用被存储在查找表中的呼叫地址调用子例程在任何位置。
如果需要的话,一个REF指令可通过跳跃操作之前在与REF装置被规避
执行顺序。此外,紧接一个REF以下的指令,也可以通过使用跳过
适当的参考指令或指令。
两个字节指令可以通过使用REF指令引用(一个例外是XCH A , DA ) 。如果MSB值
在基准区域中的第一个字节的指令为“0 ”时,指令不能由一个REF引用
指令。因此,如果使用REF引用两个1字节的指令存储在参考区域中,具体
组合必须用于在第一和第二个1字节的指令。
这些组合的例子如表5-1所示。
表5-1 。对于REF查找的有效期1个字节的指令组合
第1个字节的指令
指令
LD
操作数
A, #im
第二个1字节指令
指令
INCS
INCS
DECS
LD
A, @RRa
INCS
INCS
DECS
LD
清零处理,A
INCS
INCS
DECS
, *
-./
操作数
R
RRB
R
R
RRB
R
R
RRB
R
降低指令冗余
当多余的指令,如LD A , # IM和LD EA , # IMM被连续使用一个程序序列,
只有第一指令被执行。随后的冗余指令被忽略,即,它们被处理
像NOP指令。当LD HL , # IMM指令连续使用,多余的说明也
忽略不计。
在下面的示例中,只有“ LD A , #im ”指令被执行。 8位加载指令紧随其后
被解释为多余的,被忽略:
LD
LD
A, # IM
EA , # IMM
;负载4位立即数( #im )到累加器
;将8位立即数( #IMM ),以延长
;累加器
在这个例子中,语句“ LD A , # 2H ”和“ LD A , # 3H '被忽略:
BITR
LD
LD
LD
LD
教统局
A,#1H
A,#2H
A,#3H
23H,A
;
;
;
;
执行指令
忽略,冗余指令
忽略,冗余指令
执行指令, 023H
←
#1H
如果连续LD HL , #IMM指令(装入8位立即数到8位存储器指针对, HL )是
检测到的,只有第一LD被执行并且紧跟在LD被忽略。例如,
LD
LD
LD
LD
LD
HL,#10H
HL,#20H
A,#3H
EA,#35H
@ HL ,A
;
;
;
;
;
HL
←
10H
忽略,冗余指令
A
←
3H
忽略,冗余指令
(10H)
←
3H
如果用一个REF指令的指令引用的冗余度的效果,适用下列条件:
- 如果指令
前
在REF具有冗余的效果,该效果被取消,并且被引用的
指令不会被跳过。
- 如果指令
以下
在REF具有冗余的效果,以下将REF的指令被跳过。
编程提示 -
ABC
ORG
LD
ORG
该指令冗余效应的例子
;存储在REF指令参考区
0020H
EA,#30H
0080H
LD
REF
EA,#40H
ABC
;遇到裁员的影响
;没有跳转( EA
←
#30H)
REF
LD
ABC
EA,#50H
; EA
←
#30H
;跳
灵活的位操作
除了像集,清晰正常的位操作指令, SAM47指令集也可以执行位
测试中,位传输,和位布尔运算。位也可以解决,并通过特殊的位操作
寻址模式。三类位寻址的支持:
- mema.b
- MEMB @ L
- @ H + DA.b
这些位寻址模式的参数进行更详细的表5-2中所述。
表5-2 。位寻址模式和参数
寻址模式
mema.b
MEMB 。 @ L
@ H + DA.b
端口
BSCx ,端口
所有位可操作外设
可寻址外设
雇员再培训局,教育统筹局, IS1 , IS0 , IEX , IRQx
FB0H-FBFH
FF0H-FFFH
FC0H-FFFH
存储库的所有位被指定
教育统筹局及SMB是位可操作
地址范围
,
0*%
以下说明具有跳跃功能时,溢出或借位:
XCHI
XCHD
LDI
LDD
INCS
DECS
ADS
SBS
如果存在溢出或从一个增量或减量的结果借用,跳跃信号生成和
跳过执行。然而,进位标志值不受影响。
该指令BTST , BTSF和安博也产生跳跃信号,并执行跳跃,当他们遇到一个跳跃
条件和进位标志值也不受影响。
影响进位标志说明
是不产生跳跃的信号,但它确实会影响进位标志指令只有如下:
ADC
SBC
SCF
RCF
CCF
RRC
ADC和SBC指令跳转条件
当指令“ ADC A , @ HL ”和“ SBC A, @ HL '可以生成跳过信号,并设置或清除进位标志,
他们与指令“ ADS A,# IM '组合执行。
如果一个“ ADS A,# IM '指令紧跟一个” ADC A , @ HL '或' SBC A, @ HL '指令程序
序列中, ADS指令不跳过下面ADS的指令,即使它有一个搜索功能。如果,
然而, “ ADC A , @ HL '或' SBC A,@ HL '指令后面紧跟着一个” ADS A,# IM '指令,
ADC (或SBC )跳过溢出(或者如果没有借位)的指令,立即ADS以下内容,
程序继续执行。表5-3包含了更多的信息和示例“ ADC A , @ HL '和
“ SBC A, @ HL ”跳过功能。
六味地黄丸
BAND
BOR
BXOR
IRET
C, (操作数)
C, (操作数)
C, (操作数)
C, (操作数)
表5-3 。跳过条件ADC和SBC指令
样品
指令序列
ADC A , @ HL
ADS A, # IM
xxx
xxx
SBC A, @ HL
ADS A, # IM
xxx
xxx
1
2
3
4
1
2
3
4
如果结果
说明1 :
溢流
无溢出
借
无借
然后,执行
序列是:
1, 3, 4
1, 2, 3, 4
1, 2, 3, 4
1, 3, 4
原因
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
该SAM47指令集是专为支持通常成立于大多数大型寄存器文件
KS57系列微控制器。的SAM47的指令集包括用于数据的1位, 4位和8位的指令
操纵,逻辑和算术运算,程序控制和CPU控制。外设I / O指令
硬件设备的灵活和易于使用。符号硬件名称可以被取代的指令
操作到位的实际地址。在SAM47指令集的其他重要特性包括:
- 长说明1字节引用( REF指令)
- 冗余指令减少(字符串效果)
- 跳过功能的ADC和SBC指令
指令操作数符合每个指令定义的操作数格式。几个指令有多个
操作数格式。
预定义的值或标签可寻址立即数时使用的指令操作数。许多的
对于特定的寄存器和标志符号也可以被取代的标签的操作,例如多巴胺, MEMA , memb结构,
b和等等。使用说明标签可以大大简化编程和调试任务。
在本节中,以下SAM47指令集的特性进行了详细的描述:
- 教学参考区
- 指令冗余度降低
- 灵活的位操作
- ADC和SBC指令跳转条件
?????????????????????????????????????????????????? ??????????? ?????????????? ?? ! " # $ ? " # ? $ ? % ? && $ ?
? % ? && ? “???
( ) *
+
指令参考区
使用1个字节REF (参考)指令,你可以参考存储在地址0020H - 007FH说明
程序存储器( REF指令查找表) 。通过REF引用的位置可能包含2 1-
字节指令或一个2字节指令。该指令的起始地址被引用绝
始终是偶数。
3个字节的指令,如日本特或CALL也可以使用REF引用。引用这3个字节的指令,
2字节的伪指令TJP和TCALL必须写入基准,而不是特和CALL 。
在执行REF指令时, PC不会递增。后执行,程序的指令
执行顺序恢复的地址,立即REF指令之后。通过使用REF指令
执行指令比一个字节大,以及分支机构和子程序,可以减少程序的大小。
总之, REF指令可以通过三种方式来使用:
- 使用1字节REF指令以执行一个2字节或两个1字节的指令;
- 分支的任何位置通过引用被存储在查找表中的一个分支地址;
- 通过引用被存储在查找表中的呼叫地址调用子例程在任何位置。
如果需要的话,一个REF指令可通过跳跃操作之前在与REF装置被规避
执行顺序。此外,紧接一个REF以下的指令,也可以通过使用跳过
适当的参考指令或指令。
两个字节指令可以通过使用REF指令引用(一个例外是XCH A , DA ) 。如果MSB值
在基准区域中的第一个字节的指令为“0 ”时,指令不能由一个REF引用
指令。因此,如果使用REF引用两个1字节的指令存储在参考区域中,具体
组合必须用于在第一和第二个1字节的指令。
这些组合的例子如表5-1所示。
表5-1 。对于REF查找的有效期1个字节的指令组合
第1个字节的指令
指令
LD
操作数
A, #im
第二个1字节指令
指令
INCS
INCS
DECS
LD
A, @RRa
INCS
INCS
DECS
LD
清零处理,A
INCS
INCS
DECS
, *
-./
操作数
R
RRB
R
R
RRB
R
R
RRB
R
降低指令冗余
当多余的指令,如LD A , # IM和LD EA , # IMM被连续使用一个程序序列,
只有第一指令被执行。随后的冗余指令被忽略,即,它们被处理
像NOP指令。当LD HL , # IMM指令连续使用,多余的说明也
忽略不计。
在下面的示例中,只有“ LD A , #im ”指令被执行。 8位加载指令紧随其后
被解释为多余的,被忽略:
LD
LD
A, # IM
EA , # IMM
;负载4位立即数( #im )到累加器
;将8位立即数( #IMM ),以延长
;累加器
在这个例子中,语句“ LD A , # 2H ”和“ LD A , # 3H '被忽略:
BITR
LD
LD
LD
LD
教统局
A,#1H
A,#2H
A,#3H
23H,A
;
;
;
;
执行指令
忽略,冗余指令
忽略,冗余指令
执行指令, 023H
←
#1H
如果连续LD HL , #IMM指令(装入8位立即数到8位存储器指针对, HL )是
检测到的,只有第一LD被执行并且紧跟在LD被忽略。例如,
LD
LD
LD
LD
LD
HL,#10H
HL,#20H
A,#3H
EA,#35H
@ HL ,A
;
;
;
;
;
HL
←
10H
忽略,冗余指令
A
←
3H
忽略,冗余指令
(10H)
←
3H
如果用一个REF指令的指令引用的冗余度的效果,适用下列条件:
- 如果指令
前
在REF具有冗余的效果,该效果被取消,并且被引用的
指令不会被跳过。
- 如果指令
以下
在REF具有冗余的效果,以下将REF的指令被跳过。
编程提示 -
ABC
ORG
LD
ORG
该指令冗余效应的例子
;存储在REF指令参考区
0020H
EA,#30H
0080H
LD
REF
EA,#40H
ABC
;遇到裁员的影响
;没有跳转( EA
←
#30H)
REF
LD
ABC
EA,#50H
; EA
←
#30H
;跳
灵活的位操作
除了像集,清晰正常的位操作指令, SAM47指令集也可以执行位
测试中,位传输,和位布尔运算。位也可以解决,并通过特殊的位操作
寻址模式。三类位寻址的支持:
- mema.b
- MEMB @ L
- @ H + DA.b
这些位寻址模式的参数进行更详细的表5-2中所述。
表5-2 。位寻址模式和参数
寻址模式
mema.b
MEMB 。 @ L
@ H + DA.b
端口
BSCx ,端口
所有位可操作外设
可寻址外设
雇员再培训局,教育统筹局, IS1 , IS0 , IEX , IRQx
FB0H-FBFH
FF0H-FFFH
FC0H-FFFH
存储库的所有位被指定
教育统筹局及SMB是位可操作
地址范围
,
0*%
以下说明具有跳跃功能时,溢出或借位:
XCHI
XCHD
LDI
LDD
INCS
DECS
ADS
SBS
如果存在溢出或从一个增量或减量的结果借用,跳跃信号生成和
跳过执行。然而,进位标志值不受影响。
该指令BTST , BTSF和安博也产生跳跃信号,并执行跳跃,当他们遇到一个跳跃
条件和进位标志值也不受影响。
影响进位标志说明
是不产生跳跃的信号,但它确实会影响进位标志指令只有如下:
ADC
SBC
SCF
RCF
CCF
RRC
ADC和SBC指令跳转条件
当指令“ ADC A , @ HL ”和“ SBC A, @ HL '可以生成跳过信号,并设置或清除进位标志,
他们与指令“ ADS A,# IM '组合执行。
如果一个“ ADS A,# IM '指令紧跟一个” ADC A , @ HL '或' SBC A, @ HL '指令程序
序列中, ADS指令不跳过下面ADS的指令,即使它有一个搜索功能。如果,
然而, “ ADC A , @ HL '或' SBC A,@ HL '指令后面紧跟着一个” ADS A,# IM '指令,
ADC (或SBC )跳过溢出(或者如果没有借位)的指令,立即ADS以下内容,
程序继续执行。表5-3包含了更多的信息和示例“ ADC A , @ HL '和
“ SBC A, @ HL ”跳过功能。
六味地黄丸
BAND
BOR
BXOR
IRET
C, (操作数)
C, (操作数)
C, (操作数)
C, (操作数)
表5-3 。跳过条件ADC和SBC指令
样品
指令序列
ADC A , @ HL
ADS A, # IM
xxx
xxx
SBC A, @ HL
ADS A, # IM
xxx
xxx
1
2
3
4
1
2
3
4
如果结果
说明1 :
溢流
无溢出
借
无借
然后,执行
序列是:
1, 3, 4
1, 2, 3, 4
1, 2, 3, 4
1, 3, 4
原因
ADS不能跳过
指令3 ,即使它
具有跳跃功能。
ADS不能跳过
指令3 ,即使它
具有跳跃功能。