블로그 이미지
송시혁

calendar

1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

.386
.MODEL FLAT

ExitProcess PROTO NEAR32 stdcall, dxExitCode:DWORD

INCLUDE io.h

cr    EQU    0dh
Lf    EQU    0ah

.STACK 4096

.DATA  ;;;;;;;;;;전역변수
number1    DWORD    ? ;dword는 4바이트
number2    DWORD    ?
prompt1    BYTE      "Enter first      number :     "0 ;BYTE는 1바이트
prompt2    BYTE      "Enter second number :     "0    ;
string     BYTE      40    DUP  (?)           ; 변수 string 40개를 ()안의 내용을 복사.  여기서는 키보드로 
                                                       ; 입력받기 위해 ()안에 '?'를 사용함.

label1     BYTE      cr,   Lf,      "The Sum is "    ;     
sum        BYTE      11    DUP  (?)         ;DUP는 왼쪽에 11개만큼 ()안의 있는 것을 복사. 즉, 코드를 복사한다.   
           BYTE      cr,    Lf,     0         ;
        
.CODE
_smart:
        output   prompt1;화면에 prompt1에 대한 내용을 화면에 출력.
        input    string, 40  ;옆에 키보드로 입력받는다. 40개까지 가능.
        atod     string    ;아스키코드를 숫자로 바꾸는 함수. 위에 입력한 아스키코드를 숫자로전환.
        mov      number1, eax  ;number1에 eax를 대입.
        
        output   prompt2  ;화면에 prompt2에 내용을 출력.
        input    string, 40  ;키보드로 입력받는다. 40개까지 가능.
        atod     string    ;
        mov      number2, eax  ;number1에 eax를 대입.
        
        mov     eax, number1  ;eax=number1
        add      eax, number2  ;eax=eax+number2
        dtoa     sum, eax  ;출력하기 전에 정수를 아스키코드로 변환한다. 
        output   label1    ;
        
        INVOKE   ExitProcess, 0
        
PUBLIC  _smart


posted by 송시혁