chrisl at gnuchina dot org
The goal of Chasm is to make writing assember code easie without impairing the power of assember, which make the target code small and fast.
But writing assember is much slower than writing C. Chasm try to fill in the gap here. To retain the power of assember, chasm will following some rules:
Avoid generate the instruction which will change the machine status unless it is explicitly told to do so. machine status refer to CPU register,Most condition jmp instruction can fall in this catalog.
That is something I learn from nasm. Chasm will try to generate optimized code without futher instruction of how to doing it. But the user can always explicitly sepcify the perfer way.
the flow control statment is borrow from C. The flow control is base on the condition jmp instruction, e.g. in i386 that is ja,jz,jcxz, etc. Those instruction did not change any register nor condition flag. So the n condition branch need n condition jmp instuction.