☞ C언어 if , else 문을 어셈블리어 jmp로 코딩
Visual studio 2010 Disassembly |
ASM 코딩 |
#include <stdio.h>
int main()
00411350 push ebp if(a < 0 ) {
00411380 mov eax,dword ptr [a] } ; a 와 0 이 같다면 ZF = 1 될것이고 0041138F jne main+43h (411393h) ; 같지 않으면 ( ZF = 0) 411393 로 점프 00411391 jmp main+4Ch (41139Ch) ; 41139C 로 점프 }
++a; } a = a+100; return 0; }
|
ExitProcess PROTO NEAR32 stdcall, dxExitCode:DWORD INCLUDE io.h .STACK 4096
result1 BYTE "Result : (balance + value) < 0", cr,Lf,cr,Lf, 0
.CODE
output prompt1 add eax, ebx ;balance + value
elseifZero: jnz elsePos ; ZF = 1이 아니면 elsePos 로 점프
output result2 ; (balance + value) = 0 이라면 수행
jmp endBalanceCheck ; endBalanceCheck 로 점프
endBalanceCheck: INVOKE ExitProcess, 0
PUBLIC _start
|
____________________________________________________________________________________________
'코스웨어 > 13년 스마트컨트롤러' 카테고리의 다른 글
기초 어셈블리 조건문 5.2 Conditional Jumps 숙제 (0) | 2013.09.04 |
---|---|
2013.09.04_jmp instruction 과제_ 김성엽 (0) | 2013.09.04 |
2013년 9월4일 <conditional jump> (0) | 2013.09.04 |
9월3일 어셈블리(숙제) (0) | 2013.09.04 |
switch 문 분석하기 (0) | 2013.09.04 |
어셈블리 숙제 조유진 (0) | 2013.09.04 |
9월 4일 어셈블리 숙제 (0) | 2013.09.04 |
jns와 jnz 소스분석 - 문예진 (1) | 2013.09.04 |