크리에이티브 커먼즈 라이센스

홈페이지HOME

PHP

JavaScript

HTML

CSS

드롭다운메뉴

제로보드4

도   움   말

백지 건강강좌/자가임상체험

물박사(자가면역질환...)^미러

전동명(천연물질사전)^미러

竹田 장승옥(블로그)^글목록

계산환산(계산기)^ 단위변환

관주성경 TTS 일반파일 TTS

바이블로 Bible_ro 다운로드

다운로드>폰에 복사
>파일선택...설치됩니다.

[도움말 보기] 바로가기

개선 요구, 충고는
아래 관리자 연락
전화/메일 부탁 드립니다.
최대한 빨리 처리하고
업데이트 올리겠습니다.


asm_77.


ADD 명령과 키 입력 방법


     18 이형문 buju8t 12/26 1038

    10 ADD 명령과 키 입력 방법에 대해.....







ADD 명령의 사용법

ADD 명령에 있어서 레지스터나 수치의 지정법은 기본적으로 MOV 명령의 경우와

같읍니다.

ADD는 첫번째 오퍼랜드의 내용에 두번째 오퍼랜드의 내용을 더하여 결과를 첫번째

오퍼랜드에 저장하는 명령입니다.

ADD AX,1234H ;

AX 레지스터 의 내용에 숫자 1234H 를 더하여

 그

결과를 AX 레지스터에 다시 저장하라는 명령

ADD 명령에서 사용가능한 번지 지정 조합법

+-------------------------------------------------------------------+

 범용 레지스터 (8/16 비트) 범용

레지스터 (8/16 비트)

 ADD 메모리

 ( " )


 메모리  (

 " )  숫자

 ( " )


+-------------------------------------------------------------------+

 1. 양쪽의 오퍼랜드가 모두  메모리로 조합하면 안됩니다.

 2. 양쪽의 오퍼랜드의 크기가 같아야 합니다.

 3.적어도 어느 한 쪽의 오퍼랜드가 바이트 혹은 워드를 구별할 수 있어

 야 합니다.

ADD [BX],12H

[BX] 에 의해 표시되는 메모리가 바이트형인지 워드형인지 구별이 안됩니다. 그러므로,

ADD BYTE PTR [BX],12H

로 해주면 좋읍니다.

AA EQU 24H ; AA는 상수 이므로 숫자입니다.

BB DW 5678H;BBB는 변수 이름이어서 메모리를

나타내는 간접 방식

 의

일종입니다.






* 4040H + 0102H 를 더하고 그 결과 4142H DML 41H,42H 에 해당하는 문자를 출력하는

프로그램

MAIN  SEGMENT

ASSUME CS:MAIN

;

MOV BX,4040H

ADD BX,0102H

MOV DL,BH

MOV AH,2

INT 21H

MOV DL,BL

MOV AH,2

INT 21H

;

MOV AH,4CH

INT 21H

;

MAIN  ENDS

END

이와 같이 아스키 문자에 의한 출력이아니라 직접 숫자를 출력하는 방법은 MS-DOS

의 시스템 호출 에 숫자를 직접 출력하는 방법이 준비 되어 있지 않습니다.그러므로

이 문제는 프로그램을 작성하여 해결하여야 합니다.

이제 키 입력 방법에 대해 알아 봅시다.

키보드로 부터 한 문자를 입력하려면 MS-DOS의 펑션호출의 1번을 사용합니다.

AH레지스터에 1을 설정하고 펑션 호출을 수행하면 ,키보드로 부터 입력이 있을 때까지

기다리고 있다가 ,입력된 문자의 아스키 코드를 AL 레지스터로 돌려 보내줍니다.






+------키입력 (에코 있음)---------------------------+

MOV AH,1

INT 21H  

AL <----입력된 문자의 아스키 코드

+---------------------------------------------------+

어떤 입력된 문자를 에코 백하고 ASCII코드상의 그다음의 두개의 문자를 출력하여

첫번 입력된 것의 소문자 출력 프로그램입니다.

MAIN  SEGMENT

ASSUME CS:MAIN,DS:MAIN

;

ONE EQU 1

TOLOWER EQU 'a'-'A'

;

MOV AX,MAIN

MOV DS,AX

;

MOV AH,1

INT 21H

MOV KEEP,AL

ADD AL,ONE

MOV DL,AL

MOV AH,2

INT 21H

;

 MOV DL,KEEP

ADD DL,TWO

MOV A H,2

INT 21H

;

MOV DL,KEEP

ADD DL,TOLOWER

MOV AH,2

INT 21H

;

MOV AH,4CH

INT 21H

;

TWO DB 2

KEEP  DB ?

;

MAIN  ENDS

END  

다음을 봐 주십시요!.






AA DB 'A'  ;  변수  AA 에 문자 'A' 에 대응하는 아스키 코드

의 41H 가

 정의

되어 있읍니다.

BB EQU 'B'; EQU 에 의하여 상수 BB 에 문자 'B'에 대응하는 아스키 코드

42H가

정의 되어 잇읍니다.

이와 같은상수나 변수의 설정에 대해서는 덧셈과 뺄셈을 할 수있읍니다.

TOLOWER  EQU  'a'-'A' ; a= 61H,A=41H 이므로 61H-41H=20H 를 의미합니다

여기서

20H 를 쓰지 않은  이유는 TOLOWER 상수가 대문자와

소문자의

아스키 코드의 차를 나타낸다는 것을 나타내기

위해서

입니다.

여기서 상수 TOLOWER 를 변수로 정의해도 됩니다.

TPLOWER DB 'a'-'A'

만일 여기서 입력된 키에 대응하는 문자를 에코백되지 않게 하려면 프로그램에서


MOV AH,1 ------> MOV AH,8


로  바꿔 주면 에코백이되지 않읍니다.

여기서 참고로 에코벡이란

"입력된 키 값이 디스

플레이에 다시 표시되는 걸 말한다"

라고 만 알아 두십시요!



ID:
PW:

     0 분
     5 분

자유게시판

건강백과 HOME

홈페이지 HOME

조   약     HOME

생활지혜 HOME

서식양식 HOME

법원 전산양식 검색

In Na zum

비공개 HOME

백과넷 포탈 : 건강/법률(메인)/홈피/서식/조약/생활지혜

◁ 2002.9.1.~2021.4.11. ▷

관리자 연락(저작권 의심 신고) : 김병희 010-6204-4973 k8z7@hanmail.net