본문 바로가기
공부,일/어셈블리

mul,imul

by fromnothing1 2021. 8. 31.

cf ) 레지스터 상식

 

eax 계산용 
ebx 주소
ecx 반복
edx 계산용 서브

 

mul

 

곱셉의 경우  곱셈후 결과 값이 자리수가 커질 가능성이 높다. 따라서 자릿수 확장이 필요하다.

 

위 그림에서 ax 16bit 곱셈은 eax 의 ax 와 edx 의 dx 를 사용해서 32bit 로 표현 한다. 

eax, edx 32bit 의 곱셈또한 두개의 레지스터를 사용해서 32 bit로 표현한다. 

 

단 : al  8bit 단위의 곱셈은 ah 가 앞의 숫자를 갖는다. 

이는 16bit 컴퓨터의 잔제로 16bit 컴퓨터를 만들때 위와 같이 만들었기 때문에 32bit로 넘오 와서도 똑같은 명령어를 가지고 있는것이다. 

속도를 보면 32 bit 가 16bit 나 8bit 보다 빠른것을 알수 있다. 이는 32bit cpu 에서 사용할 경우에 16,8 bit 를 사용할때는  나머지 버스를 막아주는 시간이 걸려서 그렇다. 

imul

mul 과 동일함   단 , 여러개의 operand 를 사용가능  

ex) imul ax, bx  ; ax = ax * bx 

    imul ax, bx ,2 ; ax = bx * 2

'공부,일 > 어셈블리' 카테고리의 다른 글

Branching and Looping  (0) 2021.09.01
add & sub LargeNumber  (0) 2021.08.31
덧셈 뺄셈 숙제 코드  (0) 2021.08.26
여러가지 어셈블리 명령어  (0) 2021.08.25
어셈블리 변수 선언 , 명령어 구조  (0) 2021.08.25

댓글