我给出了这样的IF声明:
if( (Ch > ‘g’) && (Ch < ‘m’)) || ((A>=0) && (A<=100))
condition = 1;
else
condition = 0;
其中Ch是char,A是int,条件是short int。
我试图把它变成汇编语言:
Org $8000
CLR.W DO
CLR.W D1
CMPI.B #$67,ch
BGT ;something here...
Org $9000
ch DC.B 'a'
A DC.L 0
condition DS.W 1
我相信我已经获得了第一个if条件,其中67是ascii代码的十六进制值,字母'g'。但我不知道如何在这里实现AND语句,我想or语句可以像对待一样对待?因为if的一部分执行,另一部分执行。任何帮助,将不胜感激。
答案 0 :(得分:0)
如果你真的有一个有效的流程图,将它变成汇编应该是一件小事。
我不打算为你画画,只是给它一个伪代码渲染:
if Ch <= 'g' goto check_second_term
if Ch < 'm' goto result_one
check_second_term:
if A < 0 goto result_zero
if A > 100 goto result_zero
result_one:
condition := 1
goto done
result_zero:
condition := 0
done:
我相信您可以将这些转换为cmp
+ bcc
对。