Board logo

标题: s12 汇编指令 请教! [打印本页]

作者: cs_gu1980    时间: 2005-4-14 10:15     标题: s12 汇编指令 请教!

JMP        [D,PC]
GO1        DC.W        PLACE1
GO2        DC.W        PLACE2
GO3        DC.W        PLACE3
这段代码是什么意思啊?[D,PC]和DC.W这种指令格式没见过呀!

XDEF        Entry,main,_Startup
是什么意思?

CodeSection:        SECTION
在汇编指令中好象没有这种格式吧,也不是注释行!

求教!!
[em27][em26][em27]
作者: seuafu2005    时间: 2005-4-14 11:15

问题1: Jmp d,pc 指跳转到PC+D的地方,比如说当前的程序指针指在$1000, jmp 2,PC, 就是跳转执行$1002语句

问题2:DC.W 是定义一个字(word)常量
Go1  DC.W   $20    指Go1是一个值等于0x20的常数

问题3: XDEF的意思就相当于C语言函数的预定义,这样其他文件就可以调用这个函数了。对应的语句是XREF。
例如: 1.asm 文件中,XDEF  Entry   并且有Entry程序
      2.asm 文件中,XREF Entry , 那么在2.asm 文件中就可以调用Entry了,如可以Jmp Entry or JSR Entry

问题4: section是指定义这一段区间是代码
例如: Code Section
          lda  #1
          ldhx  #$21
         ....
     这些都是你的代码

      Data Section 就是数据段,存放变量
a   ds.b     1          ; 定义a为一个字节的变量
b   ds.w    1          ; 定义b为一个字的变量
作者: cs_gu1980    时间: 2005-4-15 08:26

非常感谢seuafu2005!
作者: mcu_moto    时间: 2005-4-15 09:06

1:jmp 2,PC在QY4编译通不过,是否不能用在HC08里面?
2:Go1   DC.W  $20和Go1   equ   $20有什么区别?
3:有DC.W是否代表着有DC.B定义方式?DC.W是否为一条伪指令?如是,在何处能找到比较齐全的伪指令介绍?斑主能否针对伪指令的应用专门做点介绍?
4:Entry,main这两个关键字是否不能修改为别的标号?我前段时间在sources和*.prm文件里修改这两个关键字后编译都会出现提示。例如:我在sources和*.prm里面将Entry都改成ENTRY则第一次make不能通过,第二次make可以通过,且可以正常debug,请问这是何原因?
作者: seuafu2005    时间: 2005-4-15 09:45

1: 是的,08系列还没有这种用法
2: DC.W占用一个字的ROM空间,是一个常数;equ只是一种标志,并不占用存储空间
3: 对,有DC.B的方式。关于这些用法可以到http://www.metrowerks.com/MW/Support/dev_resources/Documentation_for_HC08_3.0.htm下载assembler手册查看
4:恩,标号可以更改。但是要注意在相关的地方(如prm文件)都要作变动。
作者: shpdlizj    时间: 2005-12-29 14:20     标题: 哪里有S12的汇编伪指令介绍

哪里有S12的汇编伪指令介绍,谢谢
作者: strongchen    时间: 2005-12-29 14:24

到MetroWerks网站上下载得到。
作者: zhangyang2008    时间: 2006-8-15 15:15

s12的xdef只是在定义一些符号是否是外部可见的时候用到!
在用到c 和汇编之间进行互相调用的时候,将会用到这样的定义!
在 编译器自己带的帮助文件中也有较为详细的论述!




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0