Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 보안뉴스 한줄요약
- 자바스크립트 element api
- oracle
- 자바스크립트 객체
- numpy
- 자바스크립트 jQuery
- php
- Oracle SQL
- 자바스크립트 기본 문법
- javascript
- 자바스크립트 prototype
- 카카오프로젝트
- 보안뉴스
- 자바스크립트
- 카카오프로젝트100
- 랜섬웨어
- python
- oracle db
- 보안뉴스 요약
- 다크웹
- 오라클
- 보안뉴스요약
- 자바스크립트 node
- 파이썬
- 자바스크립트 API
- ES6
- 보안뉴스한줄요약
- 깃허브
- 카카오프로젝트 100
- GIT
Archives
- Today
- Total
FU11M00N
[어셈블리어] 어셈블리 덧셈,뺄셈,곱셈,나눗셈 본문
- PRINT_STRING
- SASM에서 제공하는 매크로 함수
- 문자열 출력 함수
- 형식] PRINT_STRING 매개변수
- 매개변수 : 출력할 곳의 주소
- 단, 문자열 종료는 0x00로 표시
입력 받기 공통 매크로
- GET_DEC
- SASM에서 제공하는 매크로 함수
- 키보드로 10진수 입력
- 형식] GET_DEC para1, para2
- para1 : 입력할 바이트 수
- para2 : 입력 받을 곳으로 레지스터 또는 메모리 주소
- GET_HEX
- 키보드로 16진수 입력
- 형식] GET_HEX para1, para2
- para1 : 입력할 바이트 수
- para2 : 입력 받을 곳으로 레지스터 또는 메모리 주소
- 더하기 연산
더하기는 모든 계산의 가장 기본적인 연산
- 형식] add para1, para2
- para1 : 레지스터 또는 메모리에 있는 값
- para2 : 레지스터, 메모리, 값
- para1, para2가 모두 메모리인 경우는 허용되지 않음 • para1 = para1 + para2
- 빼기 연산
더하기 연산과 문법적 형태가 동일합니다!
- 형식] sub para1, para2
- para1 : 레지스터 또는 메모리에 있는 값
- para2 : 레지스터, 메모리, 값
- para1, para2가 모두 메모리인 경우는 허용되지 않음
- para1 = para1 - para2
- 1byte 곱하기 연산
- 어셈블리 언어에서 곱하기 연산 규칙은 조금 복잡함
- 형식] mul para(1byte)
- para가 1byte 일 때 : AX = AL * para • para는 레지스터만 허용
- 곱해지는 결과는 반드시 AL 레지스터에만 넣어야 함
- 연산 결과는 무조건 AX 레지스터로만 리턴
- 1byte 나누기 연산
나누기 연산도 곱하기 연산만큼 복잡한 구조를 가졌습니다!
- 형식] div para(1byte)
- para가 1byte 일 때 : AX = AL / para ; AL(몫), AH(나머지)
- para는 레지스터만 허용
- 나누어지는 값(피제수)은 반드시 AX 레지스터에만 넣어야 함
- 연산 결과는 무조건 AL, AH의 레지스터로만 리턴
그럼 배운것을 토대로 어셈코드를 하나 작성해보겠습니다!
'Programming > Assembly' 카테고리의 다른 글
[어셈블리] 어셈블리(nasm)와 c언어를 이용한 난수값 생성 2편 (0) | 2020.09.12 |
---|---|
[어셈블리] 어셈블리어(nasm) 와 c언어 를 이용해 난수값 생성 1편. (1) | 2020.09.12 |
[어셈블리어] 어셈블리어 기초 이론 2 (0) | 2020.04.11 |
[어셈블리어] 어셈블리어란? 기초 이론 1 (0) | 2020.04.11 |
Comments