Осваиваю Системное программирование (я прикладной программист на Java) Вот надо мне вывести содержимое регистра eax на экран: Встрял. Код (Text): procedure yarm is name: Unsigned_32; EAX_RESULT: Unsigned_32; begin if (argument_count) = 0 then put_line ("USAGE: yarm [command]"); Asm (".text" & LF & HT & "movl $1, %%eax" & LF & HT & "pushl %%eax" & LF & HT & "int $0x80" ); end if; name:= 1024; asm ("nop" & LF & HT & "movl $4, %%eax", Inputs => Unsigned_32'Asm_Input ("a", name), Outputs => Unsigned_32'Asm_Output ("=a", EAX_RESULT) ); -- ВЫВОД СОДЕРЖИМОГО eax? end yarm; Помогите новичку.
click_and_die > movl $4, %%eax Зачем присваивать eax фиксированное значение 4? Так оно всегда будет возвращать 4. Я уже решил не спрашивать зачем там ещё nop...
Quantum nop - чтоб верхняя строчка в глаза не бросалась. movl 4, eax - забыл убрать (тут другая прога была - выводила на экран сообщение) должно быть так Код (Text): nop pushl %%eax, Inputs => Unsigned_32'Asm_Input ("a", name), Outputs => Unsigned_32'Asm_Output ("=a", EAX_RESULT));