본문 바로가기
코스웨어/13년 스마트컨트롤러

기초 어셈블리 조건문 5.2 Conditional Jumps 숙제

by 알 수 없는 사용자 2013. 9. 4.
728x90
반응형

.386

.MODEL FLAT


ExitProcess PROTO NEAR32 stdcall, dxExitCode:DWORD


include io.h


cr equ 0dh

Lf equ 0ah


.STACK 4096


.DATA

prompt1    BYTE "input value : ", 0

prompt2 BYTE "input balance : ", 0

value         BYTE 10 DUP (?)

balance BYTE 10 DUP (?)

answer1 BYTE "value + balance = Negative", 0

answer2 BYTE "value + balance = Zero", 0

answer3 BYTE "value + balance = Positive", 0

BYTE cr,Lf,0


.CODE

_smart:

output     prompt1

input       value, 10

atod        value

mov       ebx, eax

output      prompt2

input        balance, 10

atod        balance

add         eax, ebx ; balance = balance + value

jns           elseIfZero ; jump if balance not negative

output       answer1

jmp           endBalanceCheck


elseIfZero: jnz            elsePos ; jump if balance not zero

output answer2

jmp           endBalanceCheck


elsePos:

    output        answer3



endBalanceCheck:

INVOKE   ExitProcess, 0

       

PUBLIC  _smart


END



실행결과


728x90