Итак, мой первый день в классе ассемблера, и что вы знаете? Моя преподавательница обучает всему на своей коробке с Windows, используя вызовы API Windows и т. Д., Что хорошо, за исключением того, что я использую Ubuntu на своей коробке ..
По сути, я надеюсь, что смогу найти обходной путь или какую-то форму взаимопонимания для выполнения своих заданий.
Сегодня нашим первым заданием на программирование было ввести два целых числа и вывести сумму. Я следовал коду моего профессора следующим образом:
.386
.model flat
ExitProcess PROTO NEAR32 stdcall, dwExiteCode:DWORD
include io.h
cr EQU 0dh
lf EQU 0ah
.stack 4096
.data
szPrompt1 BYTE "Enter first number: ", 0
szPrompt2 BYTE "Enter second number: ", 0
zLabel1 BYTE cr, lf, "The sum is "
dwNumber1 DWORD ? ; numbers to be added
dwNumber2 DWORD ?
szString BYTE 40 DUP (?) ; input string for numbers
szSum BYTE 12 DUP (0) ; sum in string form
szNewline BYTE cr,lf,0
.code ; start of main program code
_start:
output szPrompt1 ; prompt for ?rst number
input szString,40 ; read ASCII characters
atod szString ; convert to integer
mov dwNumber1,eax ; store in memory
output szPrompt2 ; repeat for second number
input szString,40
atod szString
mov dwNumber2,eax
mov eax,dwNumber1 ; first number to EAX
add eax,dwNumber2 ; add second number
dtoa szSum,eax ; convert to ASCII characters
output szLabel1 ; output label and results
output szSum
output szNewline
INVOKE ExitProcess,0 ; exit with return code 0
PUBLIC _start ; make entry point public
END ; end of source code
Просто и достаточно просто, да? Так что сегодня я включил все, что связано со дерьмовыми школьными компьютерами. И я полностью понимаю все концепции, связанные с этим, однако я вижу здесь 2 основных вопроса, если я действительно хочу собрать его на своем боксе:
1)
.model flat
2)
ExitProcess PROTO NEAR32 stdcall, dwExiteCode:DWORD
А также
Оба из которых я слышал, очень специфичны для Windows. Итак, мой вопрос, как я могу изменить этот код, чтобы иметь возможность собирать в Linux?
Извините, если мне не хватает каких-либо подробностей, но я дам вам знать, если вам нужно.
Спасибо!