If 语句从 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 00
CLR.W DO
CLR.W D1
CMPI.B #,ch
BGT ;something here...
Org 00
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
对。
我得到了这样的 IF 语句:
if( (Ch > ‘g’) && (Ch < ‘m’)) || ((A>=0) && (A<=100))
condition = 1;
else
condition = 0;
其中 Ch 是一个 char,A 是一个 int,condition 是一个 short int。
我正在尝试将其放入汇编语言中:
Org 00
CLR.W DO
CLR.W D1
CMPI.B #,ch
BGT ;something here...
Org 00
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
对。