我用CW5.1,我要在C中调用汇编子程序,如汇编子程序是这样的: ; export symbols XDEF asm_main ; Include derivative-specific definitions INCLUDE 'derivative.inc'
; variable/data section
MY_ZEROPAGE: SECTION SHORT XDEF keyst; ; Insert here your data definition. For demonstration, temp_byte is used. keyst: DS.B 1 ; code section MyCode: SECTION ; this assembly routine is called the C/C++ application asm_main: MOV #1,temp_byte ; just some demonstration code NOP ; Insert here your own code
Bset 0,keyst RTS ; return to caller 当我编译时变量keyst就会出现 Value is truncated to one byte 这个警告,这是为什么? 我想可能是在C中我的数据指针是16位的,而BSET操作是8位的所以出现这个现象, 我想问的是这样会不会把我原来在调用汇编之前的数据指针覆盖掉,导致以后的程序出错? 我百思不得其解, 这个正常吗?难道C调用汇编的变量都会出现这样的警告?怎样解决,请高手指点
[em06][em06][em06]
[此贴子已经被作者于2008-8-27 22:10:51编辑过] |