繁体   English   中英

如果语句从C转换为汇编(Motorola 68k)

[英]If Statement Conversion From C to Assembly(Motorola 68k)

我得到了这样的IF语句:

if( (Ch > ‘g’) && (Ch < ‘m’)) || ((A>=0) && (A<=100))
    condition = 1;
else
    condition = 0;

其中Ch是char,A是int,而condition是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是字母“ g”的ASCII码的十六进制值。 但是我不知道如何在此处实现AND语句,我猜or语句可以被视为其他语句? 因为if的一部分执行或其他执行。 任何帮助,将不胜感激。

如果您确实有一个可行的流程图,那么将其转换为汇编件应该是一件简单的事情。

我不会为您绘制它,只是给出它的伪代码渲染:

    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对。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM