第3章汇编语言.ppt

  1. 1、本文档共236页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* Example: lsr r19 ; Divide r19:r18 by two ror r18 ; r19:r18 is an unsigned two-byte integer brcc zeroenc1 ; Branch if carry cleared asr r17 ; Divide r17:r16 by two ror r16 ; r17:r16 is a signed two-byte integer brcc zeroenc2 ; Branch if carry cleared ... zeroenc1: nop ; Branch destination (do nothing) ... * 5、算术右移 ASR – Arithmetic Shift Right ASR Rd ;0 ≤ d ≤ 31, PC ← PC + 1 寄存器 Rd 中的所有位右移 1 位,而位 7 保持不变,位 0 送入 SREG 的 C 标志位 该操作实现 符号数除以 2 而不改变符号 进位标志C用于结果的舍入 注意:AVR没有算术左移指令 * Example: ldi r16,$10 ; Load decimal 16 into r16 asr r16 ; r16=r16 / 2 ldi r17,$FC ; Load -4 in r17 asr r17 ; r17=r17/2 * 6、半字节交换SWAP – Swap Nibbles SWAP Rd ; R(7:4) ← Rd(3:0), R(3:0) ← Rd(7:4), 0 ≤ d ≤ 31, PC ← PC + 1 寄存器Rd中的高半字节和低半字节交换 inc r1 ; Increment r1 swap r1 ; Swap high and low nibble of r1 inc r1 ; Increment high nibble of r1 swap r1 ; Swap back * 3.5.2 位变量传送指令 1、寄存器中的位存储到 SREG 中的 T 标志 BST – Bit Store from Bit in Register to T Flag in SREG BST Rd,b ; T ← Rd(b), 0≤d≤31, 0≤b≤ 7 把寄存器中的位 b 存储到 SREG (状态寄存器) 中的 T 标志 2、 SREG 中的 T 标志装入寄存器中的某一位 BLD – Bit Load from the T Flag in SREG to a Bit in Register BLD Rd,b ; Rd(b) ← T, 0≤d≤31, 0≤b≤7 复制 SREG (状态寄存器) 的 T 标志到寄存器 Rd 中的位 b * Example: ; Copy bit bst r1,2 ; Store bit 2 of r1 in T Flag bld r0,4 ; Load T into bit 4 of r0 * 3.5.3 位变量修改指令 1、状态寄存器的指定位置位 BSET – Bit Set in SREG BSET s ; SREG(s) ← 1, 0 ≤ s ≤ 7 SREG中某一标志或位置位 bset 6 ; Set T Flag bset 7 ; Enable interrupt 2、状态寄存器的指定位清零 BCLR – Bit Clear in SREG BCLR s ; SREG(s) ← 0, 0 ≤ s ≤ 7 SREG中某一标志或位清零 bclr 0 ; Clear Carry Flag bclr 7 ; Disable interrupts * 3.5.3 位变量修改指令 3、I/O寄存器的指定位置位 SBI – Set Bit in I/O Register SBI A,b ; I/O(A,b) ← 1, 0≤A≤31, 0≤b≤7 对I/O寄存器指定的位置位. 只对低32个I/O寄存器操作 out $1E,r0 ; Write EEPROM address sbi $1C,0 ; Set read bit in E

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档