본문 바로가기

어셈블리어 공부용26

emu8086 어셈블러로 어셈블리어 연습 [소문자는 대문자로, 대문자는 소문자로 바꾸어 출력하게 하기] .MODEL SMALL ;메모리크기 설정 .STACK .CODE ;여기 아래부터 코드시작 MOV AH,1 ;사용자로부터 문자하나를 입력받을 준비. 입력받은 문자는 AL 레지스터에 저장된다. INT 21h CMP AL,40h ;입력받은 문자가 대문자인가 소문자인가? JG ISAA ;일단 40h부터 크다면 세부 탐색으로 넘기기 (소문자인가 대문자인가) JZ DISP2 ;해당사항 없으면 그대로 출력 JL DISP2 ;해당사항 없으면 그대로 출력 ISAA: ;세부탐색구간 CMP AL, 5Bh ;5b아스키코드와 비교해보자. JG LOWER ;입력한 문자의 아스키코드값이 더 크다? 우선 소문자로 판별. JL UPPER ;작다면 대문자로 판별. UPPER: ;입력한 문자가 대문자로 결정됐을때. ADD AL,20h ;.. 2019. 8. 15.
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.