본문 바로가기

분류 전체보기34

DOS DEBUG로 어셈블리어 연습 [z에서 a까지 역순으로 알파벳 출력하기] MOV CX, 1A ; CX 레지스터에 1Ah를 수록합니다. 알파벳의 수 만큼 LOOP문을 작동시키기 위함입니다. MOV DL, 7A ; DL 레지스터에 7Ah를 수록합니다. 아스키코드표에서 'Z'에 해당됩니다. MOV AH, 02 ; AH 레지스터에 기능번호 2를 수록합니다. 한 글자 출력하는 역활을 합니다. INT 21 ; 명령 실행 DEC DL ; DL레지스터에 1을 뺍니다. 알파벳이 역순으로 갑니다. LOOP 105 ; 세 번째 코드(MOV AH,02)로 돌아갑니다. INT 20 ; 실행 종료 알파벳을 순서대로 출력할 때는 INC 명령어를 사용했었습니다. 여기서는 반대로 가야하니까 값을 1씩 줄이기 위하여 DEC 명령어를 사용했습니다. 코드 작성화면, 실행 확인. 2019. 8. 15.
DOS DEBUG로 어셈블리어 연습 [아스키코드전체를 2번만 출력하기] ※참고 아래 링크에 아스키 코드가 정리되어 있습니다. IBM Knowledge Center Please note that DISQUS operates this forum. When you sign in to comment, IBM will provide your email, first name and last name to DISQUS. That information, along with your comments, will be governed by DISQUS’ privacy policy. By commenting, you are accept www.ibm.com MOV CX, 1FE ;cx레지스터에 1FE(십진수로 510)를 수록합니다. 이 레지스터는 LOOP문의 반복횟수와 관계있음. MOV DL,0.. 2019. 8. 15.
DOS DEBUG로 어셈블리어연습 [아스키 문자들 전부 무한히 표시하기] ※참고 아래 링크에 아스키 코드가 정리되어 있습니다. IBM Knowledge Center Please note that DISQUS operates this forum. When you sign in to comment, IBM will provide your email, first name and last name to DISQUS. That information, along with your comments, will be governed by DISQUS’ privacy policy. By commenting, you are accept www.ibm.com MOV DL,0 ; DL레지스터에 아스키코드의 맨 처음을 수록합니다. MOV AH,02 ; AH레지스터에 실행명령 02를 수록합니다. INT.. 2019. 8. 15.
DOS DEBUG로 어셈블리어 연습 [JMP문을 이용해서 A 무한출력하기] MOV DL, 41 ; DL레지스터에 대문자 A(아스키코드로 41h)를 수록합니다. MOV AH, 02 ; 한 문자를 출력하는 기능번호를 AH레지스터에 수록합니다. INT 21 ; 레지스터에 넣은 명령을 실행시킵니다. JMP 100 ; 맨 처음으로 돌아갑니다. 코드작성화면 실행확인. 2019. 8. 15.
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.