没有合适的资源?快使用搜索试试~ 我知道了~
AVR汇编指令集中文版
5星 · 超过95%的资源 需积分: 50 77 下载量 188 浏览量
2012-12-07
10:53:51
上传
评论 1
收藏 434KB PDF 举报
温馨提示
试读
125页
很好的学习AVR汇编的中文资料,有举例和说明。下了一些英文的,不好使,这个是我好不容易才找到的!
资源推荐
资源详情
资源评论
ADC
说明:
两个寄存器和 C 标志位的内容相加,结果送目的寄存器 Rd。
操作:
(i)Rd ← Rd + Rr + C
语法: 操作数: 程序计数器:
(i)ADC Rd, Rr 0 ≤ d ≤ 31, 0 ≤ r ≤ 31 PC <- PC + 1
机器码:
0001
11rd
dddd
rrrr
状态寄存器 (SREG)标志位:
I
T
H
S
V
N
Z
C
-
-
<>
<>
<>
<>
<>
<>
H:
Rd3
·
Rr3+Rr3
·
R3 + R3
·
Rd3 如果第 3 位有进位置 1,否则清零
S:
N [+] V 符号测试
V:
Rd7
·
Rr7
·
R7 + Rd7
·
Rr7
·
R7 如果结果的补码溢出则置 1,否则清零
N:
R7 如果结果的最高有效位为 1 则置 1,否则清零
Z:
R7
·
R6
·
R5
·
R4
·
R3
·
R2
·
R1
·
R0 如果结果为$00 置 1,否则清零
C:
Rd7
·
Rr7 + Rr7
·
R7 + R7
·
Rd7 如果结果的最高有效位有进位则置 1,否则清零
R ((
(结果) 在操作之后等于 Rd
例如:
R1:R0 与 R3:R2 相加
add r2,r0 ; 加低字节
adc r3,r1 ; 带进位加高字节
字长: 1 (2
字节
)
指令周期: 1
共 125 页 第 1 页
ADD
说明:
两个寄存器不带进位 C 标志位相加,结果送目的寄存器 Rd。
操作:
Rd <- Rd + Rr
语法: 操作数: 程序计数器:
ADD Rd,Rr 0 ≤ d ≤ 31, 0 ≤ r ≤ 31 PC <- PC + 1
机器码:
0000
11rd
dddd
rrrr
状态寄存器 (SREG) 标志位:
I
T
H
S
V
N
Z
C
-
-
<>
<>
<>
<>
<>
<>
H:
Rd3
·
Rr3+Rr3
·
R3 + R3
·
Rd3 如果第 3 位有进位置 1,否则清零
S:
N [+] V 符号测试
V:
Rd7
·
Rr7
·
R7 + Rd7
·
Rr7
·
R7 如果结果的补码溢出则置 1,否则清零
N:
R7 如果结果的最高有效位为 1 则置 1,否则清零
Z:
R7
·
R6
·
R5
·
R4
·
R3
·
R2
·
R1
·
R0 如果结果为$00 置 1,否则清零
C:
Rd7
·
Rr7 +Rr7
·
R7 + R7
·
Rd7 如果结果为$00 置 1,否则清零
R
(结果) 在操作之后等于 Rd
例如:
add r1,r2 ; r1 与 r2 相加(r1=r1+r2)
add r28, r28 ; r28 自加 (r28=r28+r28)
字长: 1 (2
字节
)
指令周期: 1
共 125 页 第 2 页
ADIW
说明:
寄存器对与立即数 (0-63) 相加,结果放到寄存器对。此指令只用于最后 4 个寄存器对和指针寄存器。
此指令并不是在所有的芯片上都适用。详情请参照设备专用指令集。
操作:
(i)Rd+1:Rd <- Rd+1:Rd + K
语法: 操作数: 程序计数器:
(i)ADIW Rd+1:Rd,K d E {24,26,28,30}, 0 <= K <= 63 PC <- PC + 1
机器码:
1001
0110
KKdd
KKKK
状态寄存器 (SREG) 标志位:
I
T
H
S
V
N
Z
C
-
-
-
<>
<>
<>
<>
<>
S:
N [+] V ,符号测试
V:
Rd h7
·
R15 如果操作结果的补码溢出则置 1,否则清零
N:
R15 如果结果的最高有效位为 1 则置 1,否则清零
Z:
R15
·
R14
·
R13
·
R12
·
R11
·
R10
·
R9
·
R8
·
R7
·
R6
·
R5
·
R4
·
R3
·
R2
·
R1
·
R0
如果结果为$0000 置 1,否则清零
C:
R15
·
Rdh7 如果结果的最高有效位有进位则置 1,否则清零
R
(结果) 在操作之后等于 Rdh:Rdl (Rdh7-Rdh0 = R15-R8, Rdl7-Rdl0=R7-R0)
例如:
adiw r25:24,1 ; 将 r25:r24 加 1
adiw ZH:ZL,63 ; 将 Z 指针(r31:r30)加上 63
字长: 1 (2
字节
)
指令周期: 2
共 125 页 第 3 页
AND
说明:
寄存器 Rd 和寄存器 Rr 的内容逻辑与,结果送目的寄存器 Rd。
操作:
(i) Rd ← Rd · Rr
(ii)
语法: 操作数: 程序计数器:
(i)AND Rd,Rr 0 ≤ d ≤ 31, 0 ≤ r ≤ 31 PC ← PC + 1
机器码:
0010
00rd
dddd
rrrr
状态寄存器 (SREG) 标志位:
I
T
H
S
V
N
Z
C
-
-
-
<>
0
<>
<>
-
S:
N [+] V,符号测试
V:
0 清零
N:
R7 如果结果的最高有效位为 1 则置 1,否则清零
Z:
R7
·
R6
·
R5
·
R4
·
R3
·
R2
·
R1
·
R0 如果结果为$00 置 1,否则清零
R
(结果) 在操作之后等于 Rd
例如:
and r2,r3 ; r2 和 r3 按位与,结果放在 r2
ldi r16,1 ; 把立即数 0000 0001 装入 r16
and r2, r16 ; 只取 r2 的第 0 位
字长: 1 (2
字节
)
指令周期: 1
共 125 页 第 4 页
ANDI
说明:
寄存器 Rd 的内容与常数逻辑与,结果送目的寄存器 Rd
操作:
(i)Rd ← Rd · K
语法: 操作数: 程序计数器:
(i)ANDI Rd,K 16 ≤ d ≤ 31, 0 ≤ K ≤ 255 PC ← PC + 1
机器码:
0111
KKKK
dddd
KKKK
状态寄存器 (SREG) 标志位:
I
T
H
S
V
N
Z
C
-
-
-
<>
0
<>
<>
-
S:
N [+] V, 符号测试
V:
0 清零
N:
R7 如果结果的最高有效位为 1 则置 1,否则清零
Z:
R7
·
R6
·
R5
·
R4
·
R3
·
R2
·
R1
·
R0 如果结果为$00 置 1,否则清零
R
(结果) 在操作之后等于 Rd
例如:
andi r17,$0F ; 将 r17 的高半字节清零
andi r18,$10 ; 取 r18 的第 4 位
andi r19,$AA ; 将 r19 的奇数位清零
字长: 1 (2
字节
)
指令周期: 1
共 125 页 第 5 页
剩余124页未读,继续阅读
资源评论
- xiaminglun2013-04-24中文版,非常棒!
- tsxbbgg2012-12-13挺全的,理解单片机过程很有用
- mass_lynnxy2015-01-04很全面,工具书了。。
- dinbo12013-01-12我很需要的中文版
- kwchangseu2013-03-10谢谢,对我很有帮助
baochang20031442
- 粉丝: 0
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 自动驾驶定位系列教程十:闭环修正.pdf
- HM2333-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- Python实现插入排序算法(源代码)
- 123.cpp
- HM2319-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- modbus4j-3.0.4.jar
- 蒙特·卡罗实验、使用蒙特·卡罗方法计算圆周率近似值.docx
- HM2319A-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- JAVA SpringBoot 集成华为云OBS,多镜像配置settings
- 一个文件共享系统,包括前端文件展示系统和后台管理系统,基于SpringBoot + MyBatis实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功