Assembly Language 2

[컴퓨터구조] 6-4. Assembly Programs - 2

오늘은 어셈블리 언어로 다룬 프로그램 중, Subroutines와 I/O Programming에 대해서 살펴봅시다. Subroutines 우리는 계속 반복되는 작업들을 subroutine으로 둬서, 사용하기 편하게 합니다. 아래는 left shift를 4번하는 연산 즉, AC의 값에 16을 곱하는 연산이 되겠습니다. 이러한 식으로 subroutines를 돌고 나올 수 있습니다. X는 16진수로 1234이기 때문에 CIL을 4번 해주면 4비트 즉, 1바이트가 옮겨지므로 2340이 되고 같은 원리로 Y도 3210이 됨을 알 수 있습니다. I/O Programming 과거 컴퓨터는 I/O의 기능을 수행하기 위해 매번 CPU가 디바이스 장치에 대해서 확인을 하는 방식을 이용했습니다. 하지만, 이 방식은 너무 비..

[컴퓨터구조] 6-2. The Assembler

오늘은 어셈블러에 대해서 알아보겠습니다!!! Assembler 어셈블러는 어셈블리 코드를 목적코드로 변환하는 것을 의미합니다. 실제로, 저번에 보았던 어셈블리 언어의 예시를 다시 기억해봅시다. 이 어셈블리 언어를 목적코드로 바꾸면 아래와 같은 형태로 변환하게 됩니다. 사실 어셈블러는, 이러한 것을 바꾸는데 아스키 표를 이용합니다. 아마 어떠한 프로그래밍 언어를 공부하더라도 어느정도 들어봤을 친숙한 이름이라고 생각합니다. 저희는 지금 16비트 컴퓨터를 설계하고 있습니다. 따라서, 8비트로 표시되는 아스키값을 총 3개로 사용할 수 있습니다. 왜냐하면 맨 앞의 4비트로는 MRI인지 non-MRI인지를 확인해야하기 때문이죠. 여기서 보면, INC와 같은 opcode는 AC의 값을 increment하는 것이므로,..