본문 바로가기

어셈블리어 공부용/x86 어셈블리어(ASSEMBLY)21

80x86 어셈블리어) 어셈블리어 INT 10h 도스비디오제어 글자 색깔 테이블 (컬러테이블, assembly language INT 10 color table) INT 10h 인터럽트 13h 번 서비스를 이용하여 비디오 제어를 할 때, BL 레지스터에 글자의 색상과 바탕을 결정하는 값을 수록해두어야 합니다. ​ 그런데 일일이 원하는 색상을 찾아보기 매우 번거로우므로, 테이블 표를 만들어서 올려둡니다. ​ 왼쪽(SAFEASG1BLOG)이 결과이고 오른쪽이 값입니다. 16진수 형태로 출력했습니다. 중간에 번쩍이는 글자는 해당 데이터 값이 글자를 번쩍이게 만들어주기 때문입니다. 참고로 emu 8086에선 번쩍이는 글자를 지원하지 않습니다. 2019. 8. 15.
80x86 어셈블리어) 어셈블리어 키보드버퍼 비우기 CLRKEY PROC NEAR PUSH AX PUSH ES MOV AX,0 MOV ES,AX MOV ES:[041ah], 041Eh MOV ES:[041ch], 041Eh POP ES POP AX RET CLRKEY ENDP 바이오스 자료영역에 직접접근하여 키보드 버퍼를 비우는 방식. 인터럽트를 쓰지 않기때문에 키 입력 대기가 발생하지 않습니다. 참고로 EMU8086은 바이오스 영역에 직접접근하지 못하기때문에 실행해도 이 코드가 효과가 없고, 테스트하려면 반드시 도스박스에서 테스트해야합니다. 출처: How to clear keyboard buffer? My question is clear ^^ How to clear keyboard buffer? www.daniweb.com 2019. 8. 15.
80x86 어셈블리어) Hello World 출력하는 3가지 방법. 어셈블리어로 Hello World를 출력하는 방법은 다양한데, 세 가지 방법으로 출력해 보겠습니다. 1. 아스키코드로 한 글자식 출력하기 (※ 환경: DOS DEBUG) MOV AH, 02 ; AH 레지스터에 한 글자를 출력하는 기능번호를 수록합니다. MOV DL, 48 ; DL 레지스터에 'H'를 수록합니다. INT 21 MOV DL, 65 ; 'E' INT21 MOV DL, 6C ; 'L' INT 21 MOV DL, 6C ; 'L' INT 21 MOV DL, 6F ; 'O' INT 21 MOV DL, 20 ; 'SPACE' INT 21 MOV DL, 57 ; 'W' INT 21 MOV DL, 6F ; 'O' INT 21 MOV DL, 72 ; 'R' INT 21 MOV DL, 6C ; 'L' INT .. 2019. 8. 14.