사칙연산
이번 범위 관련 명령
GET_DEC 1, al ;al에 1바이트 입력받음
GET_DEC 1, num ;num에 1바이트 입력받음
PRINT_DEC 1, al ;al의 값 십진수로 출력
NEWLINE ;개행
더하기 연산
문법: add a, b
의미: a = a + b
a = Register or Memory
b = Register or Memory or Constant (a, b 모두 메모리는 안됨)
add al, 1 ;Register + Constant
add al, [num] ;Register + Memory, 그냥 num을 쓸경우 주소값을 더하게 되어서 크래쉬발생
mov bl, 3
add al, bl ;Register + Register
add [num], byte 1 ;Memory + Constant, 상수를 더할 때는 크기 지정이 필요하다
add [num], al ;Memory + Register
빼기 연산
빼기 연산의 경우 위 더하기 연산과 완전히 같은 형태이다.
add 만 sub로 바꿔주면 완전히 동일
곱하기 연산
문법: mul reg
의미: al에 reg를 곱해서 ax에 저장한다.
어셈블리 언어에서 곱셈(mul)은 하나의 값을 입력하여 al의 값과 곱해주게 된다.
그러므로 원하는 결과를 얻기 위해서는 아래의 코드처럼 al에 미리 원하는 값을 넣어줄 필요가 있다.
; 5 * 8을 수행하는 코드
mov ax, 0
mov al, 5
mov bl, 8
mul bl
나누기 연산
문법: div reg
의미: ax를 bl로 나눈 결과를 각각 al(몫), ah(나머지)에 저장한다.
; 100 / 3을 수행하는 코드
mov ax, 100
mov bl, 3
div bl
Author And Source
이 문제에 관하여(사칙연산), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@doidoi88/사칙연산저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)