일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- java
- Forensic #CTF #디지털포렌식 #disk forensic
- 정보보안기사 #정보보안산업기사 #클라우드컴퓨팅 #보안 #컴퓨팅보안
- 파일 접근 권한 #linux #chown #chmond #umask #명령어
- 안드로이드 #스레드 #핸들러 #예제
- 디지털포렌식챌린지 #dfchallenge #디지털포렌식 #Forensic
- 객체
- HTML Injection #bWAPP
- CIDR #서브넷 #Network #ip 주소고갈
- snedmail #linux #정보보안기사 #정보보안산업기사 #mail protocol
- 자바
- 포렌식
- 정보보안기사 #정보보안산업기사 #2020년 정보보안기사 #시험일정
- 디지털 포렌식
- 메소드
- EnCase #mount #Forensic #image mount
- 파이썬
- evm
- 코딩
- 탈중화
- PYTHON
- forensic
- 디지털포렌식 연구회 워크샵 #디지털포렌식 #디지털포렌식챌린지 #Forensic #ctf #정보보호학회
- It
- #정보보안 #어셈블리 #저급언어 #기계어 #it #정보보안
- 비박스 #웹취약점분석 #버그바운티 #bee-box #웹 #모의해킹
- Injection #Reflected #웹취약점
- 프로그래밍
- 안드로이드 #서비스 #안드로이스 서비스 #Android #java
- Forensic CTF #disk Forensic #windows file analyzer #WFA #Codegate 2012 F100
Archives
- Today
- Total
Jsecurity
어셈블리 산술명령어 (Div) 본문
DIV / IDIV
div(divide) – 부호없는 데이터에 사용
idiv(integer divide) – 부호있는 데이터에 사용
기본적인 나눗셈 연산
• 워드/바이트 , 더블워드/워드, 쿼드워드/더블워드
형식
[라벨:] div / idiv 레지스터 / 메모리
워드/바이트
AL – 몫을 저장
- 부호가 없는 경우 : 최대 +255(FFH)
- 부호가 있는 경우 : 최대 +127(7FH)
AH – 나머지를 저장
더블워드/워드
쿼드워드/더블워드
#제수[레지스터] : 피젯수[레지스터]
명령어 | 제수 | 피제수 | 몫 | 나머지 |
div cl | 바이트 | ax | al | ah |
div cx | 워드 | dx:ax | ax | dx |
div rbx | 더블워드 | rdx:rax | rax | rdx |
#제수[메모리] : 피젯수[레지스터]
명령어 | 제수 | 피제수 | 곱 | 나머지 |
div byte [byte1] | byte1 | al | ax | ah |
div word [word1] | word1 | ax | ax : bx | dx |
div dword [dword1] | dword1 | rax | rax : rdx | rdx |
실습1
#2500/300 = 몫, 나머지
%include "io64.inc"
section .data
msg1 db "몫 = ", 0
msg2 db "나머지 = ",0
section.bss
a resw 1
b resw 1
share resw 1
residuum resw 1
section .text
global CMAIN
CMAIN:
mov [a], dword 2500
mov [b], dword 300
mov rdx, 0 ;나머지를 rdx에 저장, 초기값으로 0
mov rax, [a] ;피젯수의 값을 rax로 저장
mov rcx, [b] ; 젯수의 값을 rcx 저장
div rcx
mov [share], rax
mov [residuum], rdx
PRINT_STRING msg1
PRINT_DEC 2, share
NEWLINE
PRINT_STRING msg2
PRINT_DEC 2, residuum
NEWLINE
xor rax, rax
ret
실습2
#hap = kor + eng + mat mean = hap / 3
%include "io64.inc"
section .data
kor dd 0
eng dd 0
mat dd 0
stu_cnt dd 3
msg1 dw "total = ",0
msg2 dw "average = ",0
msg3 dw "namergi = ",0
section .bss
hap resd 1
mean resd 1
namergi resd 1
section .text
global CMAIN
CMAIN:
GET_DEC 2, [kor]
GET_DEC 2, [eng]
GET_DEC 2, [mat]
mov rax, [kor]
add rax, [eng]
add rax, [mat]
mov [hap], rax
PRINT_STRING msg1
PRINT_DEC 2, [hap]
NEWLINE
mov rdx, 0
mov rax, [hap]
div word [stu_cnt]
mov [mean], rax
mov [namergi], rdx
PRINT_DEC 2, rax
NEWLINE
PRINT_DEC 2, rdx
xor rax, rax
ret
'프로그래밍언어 > 리버싱 입문' 카테고리의 다른 글
어셈블리 조건분기 명령어 (0) | 2019.06.09 |
---|---|
어셈블리 조건 분기문 (0) | 2019.06.03 |
어셈블리 산술명령어 (Mul) (0) | 2019.04.14 |
어셈블리 산술명령어 (add, sub) (0) | 2019.04.14 |
어셈블리어의 주소 지정 방식 (0) | 2019.03.26 |
Comments