일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- windows
- query
- c++
- CLASS
- request
- 윈도우즈
- CSS
- Kafka
- meta
- 악성코드
- java
- function
- System
- jsp
- 자료구조
- Call-by-reference
- WebProgramming
- OOP
- beans
- HTML
- array
- API
- JavaScript
- C
- algorithm
- 투자
- 포인터
- Sort
- 노드
- UTF-8
- Today
- Total
목록Language/Assembly (7)
hahahia
Loop 사용법 => ex)mov ecx, LoopCount ; loop를 수행할 횟수(loopcount), ecx 레지스터에 저장한다. LoopName : ; ecx레지스터의 카운트 값이 0이 될때까지 1씩감소하면서 loop를 돈다. loop를 돌면서 반복 수행할 제어문들 loop LoopName /* fibo.asm */ ; made by hahahia ; site => http://hahahia.tistory.comINCLUDE Irvine32.inc.datafibo DWORD 1, 1, 5 DUP(0).codemain PROCmov esi, OFFSET fibomov eax, [esi]call Dumpregsadd esi, 4mov eax, [esi]call Dumpregsadd esi, 4mov..
참고=>http://hahahia.tistory.com/81 /* loop_sub.asm */ ; made by hahahia ; site => http://hahahia.tistory.com INCLUDE Irvine32.inc .data num1 DWORD ? num2 DWORD ? prompt1 BYTE "input num1 = ", 0 prompt2 BYTE "input num2 = ", 0 result BYTE "result = ", 0 .code main PROC mov ecx, 4 L1 : ; loop를 통해 4번돌게끔한다. mov dh, 10 mov dl, 20 ; 나머지 소스코드의 주석은 링크 참고 call Gotoxy mov edx, OFFSET prompt1 call WriteStri..
Gotoxy procedure 사용법 =>dh 레지스터에 커서를 옮길 x좌표, dl 레지스터에 커서를 옮길 y좌표를 mov 시킨 이후 call Gotoxy 를 이용하면 dh, dl(x, y)에 따른 프롬프트의 좌표로 커서를 옮길 수 있다. /* subtraction.asm */ 커서를 프롬프트창의 중간으로 두고, 두수를 입력받아 두 수의 차를 출력합니다. INCLUDE Irvine32.inc .data num1 DWORD ? num2 DWORD ? prompt1 BYTE "input num1 = ", 0 ; 입력 prompt1 prompt2 BYTE "input num2 = ", 0 ; 입력 prompt2 result BYTE "result = ", 0 ; 결과 prompt .code main PROC ..
SetTextColor Procedure black = 0 red = 4 gray = 8 lightRed = 12 blue = 1 magenta = 5 lightBlue = 9 lightMagenta = 13 green = 2 brown = 6 lightGreen = 10 yellow = 14 cyan = 3 lightGray = 7 lightCyan = 11 white = 15 ex) yellow + (blue * 16) ; 파란색 배경에 흰색 문자열로 출력되도록 설정한다. 위 표에서 색상에 부여된 숫자나 색상이름 둘다 사용할 수 있다./* SetTextColor.asm */INCLUDE Irvine32.inc.databuffer BYTE "Hello World!!", 0newline BYTE 0Dh,..
ReadString procedure 사용법 => edx 레지스터에 입력받을 string의 OFFSET을 mov시키고 ecx 레지스터에 string의 SIZEOF(TYPE*LENGTHOF)값을 대입한 이후 call ReadString 명령문을 실행시키면 커서창에서 string을 입력받을 수 있다.WriteString procedure 사용법 => edx 레지스터에 출력할 string의 OFFSET을 mov 시키고 call WriteString 명령문을 실행시키면 해당하는 string을 출력 할 수 있다./* revstr.asm */INCLUDE Irvine32.inc .data buffer BYTE 50 DUP(0) byteCount DWORD ? .code main PROC mov edx, OFFSET..
INCLUDE Irvine32.inc.datavar1 DWORD 10000hvar2 DWORD 20000h.codemain PROCmov eax, var1 ; eax = 00010000call Dumpregsadd eax, var2 ; eax = 00030000call Dumpregs add ax, 0FFFFh ; eax = 0003FFFFcall Dumpregsadd eax, 1 ; eax = 00040000call Dumpregssubax, 1 ; eax = 0004FFFF // ax레지스터 0000의 값에서 하나를 빼면 ffffcall Dumpregsexitmain ENDPEND main
TITLE Add and Subtract ; This program adds and subtracts 32-bit integers. INCLUDE Irvine32.inc.codemain PROCmov eax, 10000h; EAX = 10000h eax 레지스터에 10000h 대입add eax, 40000h; EAX = 50000h eax 레지스터값과 40000h값의 합을 eax 레지스터에 대입한다sub eax, 20000h; EAX = 30000h eax 레지스터값과 20000h값의 차를 eax 레지스터에 대입한다call DumpRegs ; display registers 32bit레지스터에 있는 모든 값들을 출력한다. exitmain ENDPEND main