Доброго времени суток, пишу генератор кода, но столкнулся с проблемой, дело в том, что при выполнении нижележащего кода возникает
ошибка сегментирования.
print1:
.string "%d\n"
.data
a:
.long 0
.text
.global main
main:
movl $-8, %ecx
movl $-7, %edx
cmp %ecx, %edx
setg %ah
push %ax
pushl a
pushl $print1
call printf
addl $8, %esp
jmp label_01
label_00:
label_01:
ret
И второй момент, я хочу добавить арифметику в условные выражения, то есть что-то типа:
7 + 5 > 6 + 2 для арифметических выражений использую стек, но проблема в том, что и для вычисления условных выражений используется стек. Возможно как-то разделить стек на части? В смысле обращаться к одной части для вычисления арифметических выражений, а к другой части для вычисления условных выражений ?
Третий момент, как можно реализовать работу с вещественными числами на ассемблере, и есть ли для таких дел соответствующие регистры ?
P.S Код ассемблера генерируется автоматически, так что я знаю, что его можно было бы уменьшить, но пока это не основная моя проблема