簡體   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