アセンブリクラスの最初の日で、何を知っていますか?私の教授は、Windows API呼び出しを使ってWindowsボックスにすべてを教えています。私のボックスにUbuntuを実行している以外は問題ありません。80x86アセンブリ - WindowsからのLinuxへの非常に基本的なI/Oプログラム変換
基本的に、私は回避策または何らかの形私が自分の課題を遂行するためには共通の根拠がある。
今日、最初のプログラミング割り当てでは、2つの整数を入力して合計を出力しました。私は次のように教授のコードに従いました:
.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
シンプルでわかりやすいですね。だから私は今日、それをすべて、虚弱な学校のコンピュータからつながった。
1)
.model flat
2)私が聞いた、どちらも
ExitProcess PROTO NEAR32 stdcall, dwExiteCode:DWORD
と :そして、私は完全に私が実際に私の箱の上にそれを組み立てたい場合、私はここのための2つの主要な問題を参照してください、しかし、関係するすべての概念を理解します非常にWindows固有です。だから私の質問は、私はこのコードをLinux上で組み立てるために変更することができますか?
申し訳ありませんが、私は詳細が不足しているが、必要に応じてお知らせします。
ありがとうございます!
はじめに、Hello world in assembly:http://www.cin.ufpe.br/~if817/arquivos/ asmtut/index.html#maindiff –