티스토리 뷰

서론
저도 남들에게 공유할 만큼은 아니지만, 이 글을 읽어서 어셈블리 프로그래밍에 조금이라도 관심을 가지는 분에게 도움이 될수 있었으면 합니다.


여기 있는 강좌는 "8086 Microprocessor Emulator "이라는 프로그램으로 강좌가 진행이됩니다.
MASM으로도 진행이 가능하지만 MASM보다 이 프로그램이 사용이 쉬우며 직관적이기 때문에 이프로그램을 이용하도록 하겠습니다.

제작사 홈페이지: (http://www.emu8086.com) 현재 개발사가 없어진건 같습니다. 

다운로드 페이지: https://softfamous.com/emu8086/

시리얼: User:ISHAAN,glaitm    Key:27R3VDEFYFX4N0VC3FRTQZX
반드시 학습 용도로만 사용하세요!(그외에는 정품을 구입하시기 바랍니다.)

 

어셈블리어란?

컴퓨터에서 최하위 언어, 기계어와 1:1로 표현이 가능하고, 사람의 입장에서 다루기 쉽게 각 기계어에 니모닉 기호를 이용, 표현한 언어이다.

(니모닉: 기계어에 1:1로 대응 하는 명령어)


8086 프로세서란?
1978년 인텔에서 개발된 개인용 16비트 프로세서이다.
후에 개인용 프로세서인 펜티엄, 셀러론, 코어2듀오, AMD등 많은 개인용 CPU가 이 구조를 기본으로 확장한 디자인을 가지고 있다.


8086은 명령어 길이가 가변인 CISC(Complex Instruction Set Computer, 복잡한 명령어 셋 컴퓨터)를 기반으로 디자인된 프로세스이다.


쉽게 말해 CISC 기반인 프로세스는 명령어의 길이가 일정치 않고 명령에 따라 차지하는 공간이 틀려진다는 것이다.
예를 들어보자


아래는 CISC 예제이다
주소             객체코드 명령어
0F77:0000    B8790F    MOV AX,0F79
0F77:0003    8ED8        MOV DS,AX
0F77:0005    B409        MOV AH,09

이처럼 명령어의 길이가 때마다 틀리다.

아래는 RISC의 예제다.
주소      명령어                          객체코드
2064       be done                      03 80 00 06
2068       addcc %r1,-4,%r1       82 80 7F FC
2072       addcc %r1,%r2,%r4     88 80 40 02
2076       ld %r4,%r5                  CA 01 00 00
2080       ba loop 10                  10 BF FF FB
2084       addcc %r3,%r5,%r3     86 80 CO 05
이처럼 명령어의 길이가 일정하다

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함