long1985 发表于 2007-12-17 17:24:48

请问前辈们这句($NOMOD51)在汇编里是什么意思?

请问前辈们这句($NOMOD51)在汇编里是什么意思?
用了一年半的AVR单片机,我也开始玩51了,现在公司一直用的都是STC与华邦的单片机,
所以也算是初学者,请前辈们多多指教.

lusson 发表于 2007-12-17 18:02:55

用汇编??这一句我也不知道什么意思,不过建议用KEIL C,从AVR转向51很简单

我和你相反,用了一年半51单片机,我也开始玩AVR,现在公司一直用AVR的单片机,原来我一直用STC的单片机。
./emotion/em035.gif./emotion/em035.gif

afeibfp 发表于 2007-12-17 20:15:14

NOMOD51
Abbreviation: NOMO
Arguments:    None.
Default:      The A51 assembler pre-defines all special function registersof the 8051 CPU. The A251 assembler and
            theAX51assembler do not pre-define any CPU special functionregisters.
Control Class:Primary
μVision2 Control: Options – Ax51 – Special Function Registers – Define 8051 SFR Names.
Description:The NOMOD51 control prevents the A51 assembler from implicitly defining symbols for the default 8051special function registers. This is necessary when you want to
include a definition file to declare symbols for the s

long1985 发表于 2007-12-18 09:17:01

你也是江西人?这个SEGMENT关键字在汇编中又代表什么函意?真不明白.

afeibfp 发表于 2007-12-18 09:21:52

请看keilc下的帮助文件Keil\C51\HLP\A51.pdf。

long1985 发表于 2007-12-18 14:02:27

哦.谢谢 afeibfp 的帮助.

Rocker 发表于 2007-12-24 11:07:27

和LZ的经历相差不多,现在也是STC 51,也在弄汇编

luzongjie 发表于 2008-3-26 09:32:35

我也是;现在搞51汇编;大家有时交流一下

yangsen 发表于 2008-3-26 10:01:25

$NOMOD51就是告诉汇编器不使用预定义的寄存器名,因为汇编器内部定义了51的寄存器名,但在实际使用时会用51的扩展芯片例如52之类的,如果包含了52的头文件就会出现重复定义所以要先声明一下不适用汇编器内部定义的寄存器名。这是我自己理解的,原来总用汇编,弄汇编很辛苦啊,现在想起来脑瓜子都痛

yangsen 发表于 2008-11-4 21:38:12

?PR?OSStartHighRdy?OS_CPU_A 是在外部声明的一个子程序名字是OSStartHighRdy,子程序原型的位置在OS_CPU_A这个模块里,C51编译器自动在前面增加?PR?。大概是这样子。最好自己看看CX51的帮助,或者是徐爱军的那本C51书。“重定位段”是指编译时这部分的代码或者数据的地址是未知的,要经过链接确定真实的物理地址。

gvren 发表于 2008-11-4 20:15:16

补上



$NOMOD51

EA        BIT        0A8H.7

SP        DATA        081H

B        DATA        0F0H

ACC        DATA        0E0H

DPH        DATA        083H

DPL        DATA        082H

PSW        DATA        0D0H

TR0        BIT        088H.4

TH0        DATA        08CH

TL0        DATA        08AH



        NAME OS_CPU_A    ;模块名

        

;定义重定位段

?PR?OSStartHighRdy?OS_CPU_A    SEGMENT CODE

?PR?OSCtxSw?OS_CPU_A           SEGMENT CODE

?PR?OSIntCtxSw?OS_CPU_A        SEGMENT CODE

?PR?OSTickISR?OS_CPU_A         SEGMENT CODE



?PR?_?serial?OS_CPU_A          SEGMENT CODE





在$NOMOD51这条语句后面还有一些"定义重定位段"的内容是什么意思啊,为什么有问号啊?比如这句 ?PR?OSStartHighRdy?OS_CPU_A    SEGMENT CODE  谢谢

yijiyuanjack 发表于 2010-7-23 13:59:27

记号~

浪子怀海 发表于 2016-4-18 16:36:20

mark{:smile:}
页: [1]
查看完整版本: 请问前辈们这句($NOMOD51)在汇编里是什么意思?