본문 바로가기

지난 학기들의 기록/어셈블리어3

[8086 어셈블리어] 두 문자열을 입력받고 같은지 비교 두 문자열을 입력받고, 같은지 비교합니다. 풀이코드 풀이에 사용한 알고리즘은 간단하므로 생략하겠습니다. .model small .stack .data ;필요한 출력 메시지와 ,문자열을 담을 변수들을 선언합니다 msg1 db 100 DUP('?') msg2 db 100 DUP('?') msg3 db 'Enter the first string: $' msg4 db 0ah,0dh,'Enter the second string: $' msg5 db 0ah,0dh,'The two Strings are Equal','$' msg6 db 0ah,0dh,'The two Strings are Not Equal','$' .code main proc mov ax,@data mov ds,ax mov bx,0 ; bx는 문자열1.. 2020. 12. 14.
[8086 어셈블리어] AND,OR,XOR,NOT 연산기 구현하기 8086 어셈블리어 AND, OR , XOR ,NOT 연산기 구현하기 이번 포스트에서는 AND,OR,XOR,NOT 연산을 실행해주는 코드를 구현해보겠습니다. 사용자로부터 사용하고싶은 연산을 선택받고, 연산할 대상 숫자를 입력받습니다. 주의해야할것은 AND, OR, XOR 연산의 경우 두가지 숫자를 입력받지만 NOT연산이 선택된 경우 한가지 숫자를 입력받습니다. 또한 메뉴선택이나 숫자입력에서 조건에 맞지않는 값이 입력되었을때 에러문구를 출력하며, 다시 사용자에게 입력을 요구합니다. 풀이코드 먼저 input_number 프로시저를 호출해서, 메뉴와 숫자를 입력받습니다. 입력 프로시저에서 bh레지스터에 메뉴값을 ch,cl레지스터에 입력숫자를 저장했습니다. 그리고 메뉴값을 비교해서 해당되는 label로 이동하게.. 2020. 12. 14.
[어셈블리어] 정수의 음수표현과 캐리 & 오버플로우 - (carry and overflow) 정수의 음수표현과 캐리&오버플로우 어셈블리어를 공부하기에 앞서, 데이터를 표현하는 방법에 대해서 배우게 되었습니다. 여기서, 컴퓨터가 음수인 정수를 표현하는 방법은 사람이 생각하듯이 자유롭게 표현할수 있는 것이 아니라, 0과 1의 bit형식으로 수를 표현해야하기때문에 음수를 표현하는것이 쉽지 않은 작업이라는 것을 알게되었습니다. 그렇다면 컴퓨터는 어떻게 음수를 표현할까요? 컴퓨터가 음수를 표현하는 세가지 방법 컴퓨터는 음수를 처리하기 위해 3가지 방법을 사용할수있다고 합니다. ( 사실상 3번의 2의 보수표현을 채택했습니다.) 1. Sign Magnitude (부호 절댓값) 방식 먼저 Sign Magnitude (부호 – 절댓값) 방식입니다. 가장 쉽게 생각할 수 있는 방식으로, MSB를 1이고, 남은 부.. 2020. 10. 8.