Assembly Language
Assembly Language
- 기계어 명령어를 숫자가 아니라 , 영어 단어로 표현
Assembler
- 사람이 이해하기 쉽게 만든 영어 단어-> 컴퓨터가 이해하기 쉬운 기계어 명령으로 변환해줌.
사람은 기계어가 어려움. -> 어셈블리 언어를 통해서 영어로 표현함.
하지만 영어는 컴퓨터가 불편함. -> 따라서 그 영어를 2진수로 바꿔주는 역할(Assembler)이 필요하다.
Pep/8 Assembly Language
i : immediate addressing mode
d : direct addressing mode
A new Program
- 3개의 수를 일겅서 그 합을 출력하는 프로그램을 작성
- X+Y+Z
- load 0 -> sum 초기화
- add X
- add Y
- add Z
- store
BR(branch)
- 해당 메모리 주소로 jump
- pc값을 변경
pseudo operation [의사 동작]
- 진짜 명령은 아니지만, 명령과 비슷
- 주로 데이터 저장에 사용
- Label : 해당 위치의 address를 의미
BLOCK 2라서 2byte를 차지함.
Selection : 결정연산
- BR프로그램을 선택적으로 수행하는 방법?
- PC의 값을 바꾸면 가능하다.
- BRLT [Branch Less than] 누산기 A <0 -> set PC
- BREQ [Branch Equal] 누산기 A ==0 -> set PC
- PC : BRLT 명령의 위치
- BRPL 명령을 가져온 후
- PC <- 다음 명령 STA위치
- A <0
- PC <- NegMsg위치
- 다음 명령 : CHARO를 수행
- A <0이 아닌 경우
- PC: 현재 상태를 유지
- 다음 명령 STA를 수행
- A <0
Iteration [반복]
정해진 개수만큼 수를 읽어 그 합을 구하는 프로그램을 작성한다.
- 값은 몇 개인가?
- 이 값은 어디에서 읽었는가?
- 반복해서 읽고 합하는 과정이 필요할 것
- 다 끝 낫는지는 어떻게 판별?
loop를 통해서 limit 설정, 숫자를 입력할 때마다 count를 늘려줘서 limt와 count를 CPA 때려줌.
두 값의 차이가 누산기에 저장됨.
BREQ 해서 0이면 quit --> 끝
어셈블러는 어셈블리어를 기계가 알아들을 수 있는 기계어로 바꿔주며 1대 1 매칭 되는 것이 특징이다.
'학교 > 컴퓨터학개론' 카테고리의 다른 글
[컴퓨터학개론 18장] - prov solving (0) | 2022.07.04 |
---|---|
[컴퓨터 학개론 17장] - Expressing Alogorithms (0) | 2022.07.04 |
[컴퓨터학개론 15장]- Machine Language (0) | 2022.07.03 |
[컴퓨터학개론 14장] - stored program (0) | 2022.07.03 |
[컴퓨터학개론 13장] - 컴퓨터 구성요소 (0) | 2022.07.03 |