注册 登录
编程论坛 汇编论坛

一个MCU编译器自动生成的汇编代码(汇编宏),看不大懂啥意思,各位帮忙瞧瞧。

pengzi007 发布于 2011-11-03 16:03, 1012 次点击
;--------------------------------------------------
; GET_WORD MACRO
;--------------------------------------------------
; Parameters:
; None
; Register setup
; A = ROM Source Address MSB  
; X = ROM Source Address LSB  
MACRO GET_WORD
  PUSH A ; Quickly get a RAM temp
  PUSH A ; Save the source MSB
  ROMX ; Get the first byte
  PUSH X ; Save X
  MOV X,SP ; Get SP, to index to the temp  
  MOV [X - 3],A ; Save the first byte
  POP X ; Get back the source LSB
  POP A ; And the MSB
  INC X ; Point to the second byte
  ADC A, 0 ;  
  ROMX ; Get the second byte
  MOV X,A ; Save it in X
  POP A ; And the first byte in A
ENDM


[ 本帖最后由 pengzi007 于 2011-11-3 16:07 编辑 ]
4 回复
#2
zklhp2011-11-03 16:28
你想问的是什么呢、、、
#3
pengzi0072011-11-04 15:14
回复 2楼 zklhp
这段代码实现了什么功能,具体是怎么实现的?
#4
zklhp2011-11-04 21:36
单片机的罢 功能不知道 怎么实现的? 用宏实现的啊、、 就是说 如果程序中有 GET_WORD 则自动替换为下面的代码

如果你想知道功能可以去单片机的版块问问 呵呵
#5
zaixuexi2011-11-15 15:14
我简单查了下PSoc的指令集,这段的作用就是取[A:X]指向的FLASH里的一个字的值到A:X,这个值是个地址还是个数据就由使用者来区别了。
指令可以看这里http://wenku.baidu.com/view/3408793c5727a5e9856a6142.html
最后给你画2个图
         FLASH
A:X            最初
A+CF:X+1        执行INC X后
         SRAM
-3       temp
-2       MSB
-1       X
0               <-sp<-x
1