Renesas Community
Search Community
User
Join or sign in
Site
Search Community
User
Renesas Engineering Community
FAQ
HELP
More
Cancel
Forums & Groups
English Community
中文社区(Chinese Community)
More
Cancel
かふぇルネ
forums-groups
Microcontrollers and Microprocessors
Other MCU/MPU Products
R8C/Tiny
More
Cancel
R8C/Tiny
R8C/Tiny Forum
R8C:ASM関数の戻り値(unsigned char)の判定について
Home
Forum
Tags
More
Cancel
New
Replies
2 replies
Subscribers
442 subscribers
Views
2387 views
Users
0 members are here
char
MOV.B
unsigned
戻り値
アセンブラ
I
R0L
Options
Share
More
Cancel
Related
R8C:ASM関数の戻り値(unsigned char)の判定について
toitec
over 11 years ago
toitecです。
嫌いなC言語にチャレンジしたところ、下記内容にて
躓いてしまいました。勉強不足/仕様/バグなのか、
手っ取り早く質問してみました。
よろしくお願いします。
===== 内容 =====
if文の判定式において、アセンブラ原型関数の戻り値
(unsigned char型)の判定がおかしい。
Hew:Version 4.09.00.007
===== ソース =====
// アセンブラ関数原型宣言
extern unsigned char _test_func(void);
// unsigned char なので戻り値:R0Lのはず
// プロトタイプ宣言
void main(void);
void main()
{
unsigned char i;
i = test_func();
if (test_func() == 0)
{
i = 0xff;
}
}
===== アセンブルリストから抜粋 =====
;## # C_SRC : {
.glb _main
_main:
enter #01H
;## # C_SRC : i = test_func();
jsr _test_func
mov.b R0L\,-1[FB] ; i <-:正しく
R0Lで処理
;## # C_SRC : if (test_func() == 0)
jsr _test_func
cmp.w #0000H\,R0 <-:R0にて
判断???
stz #0ffH\,-1[FB] ; i
;## # C_SRC : }
exitd
Parents
toitec
over 11 years ago
ramothさん、ありがとうございます。
友人からも同様の指摘を頂きました。
それでも、なんとなく腑に落ちないので調査して
みました。
結論としては
1.引数がない場合は、「_」の有/無の両方とも
コンパイラは正常終了する。
この時、
・「_」有りの場合は戻り値が int型で処理
・「_」無しの場合は戻り値が char型で処理
2.引数がある場合は
・「_」有りの場合は戻り値が int型で処理
・「_」無しの場合は、エラー
提示したサンプルソースが、解決に対しては不適切
でした。実際に作成したソースは「引数あり」でし
たので、「_」を追記していました。
状況が明確になったので、前に進めそうです。
ご協力、ありがとうございました。
Cancel
Up
0
Down
Reply
Cancel
Reply
toitec
over 11 years ago
ramothさん、ありがとうございます。
友人からも同様の指摘を頂きました。
それでも、なんとなく腑に落ちないので調査して
みました。
結論としては
1.引数がない場合は、「_」の有/無の両方とも
コンパイラは正常終了する。
この時、
・「_」有りの場合は戻り値が int型で処理
・「_」無しの場合は戻り値が char型で処理
2.引数がある場合は
・「_」有りの場合は戻り値が int型で処理
・「_」無しの場合は、エラー
提示したサンプルソースが、解決に対しては不適切
でした。実際に作成したソースは「引数あり」でし
たので、「_」を追記していました。
状況が明確になったので、前に進めそうです。
ご協力、ありがとうございました。
Cancel
Up
0
Down
Reply
Cancel
Children
No Data