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

홈페이지HOME

PHP

JavaScript

HTML

CSS

드롭다운메뉴

제로보드4

도   움   말

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

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

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

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

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

관주성경 TTS 일반파일 TTS

바이블로 Bible_ro 다운로드

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

[도움말 보기] 바로가기

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


asm_75.


간접지정방식의 사용법


     14 이형문 buju8t 12/24 1160

     4 간접지정방식의 사용법입니다.



간접 번지지정방식의 여러가지 사용법을 알아봅시다.






* 'AB'라는 문자를 메모리 AA 위치에 저장한뒤 이것을 한자씩 꺼내어

스크린 상에 출력한다.


CODE  SEGMENT

ASSUME CS:CODE,DS:DATA

;

MOV AX,DATA

MOV DS,AX

MOV BX,OFFSET AA

MOV AX,'AB'

MOV [BX],AX

MOV CX,AA

MOV DL,CH

MOV AH,2

INT 21H


MOV DL,CL

MOV AH,2

INT 21H

MOV AH,4CH

INT 21H

;

CODE  ENDS

;

DATA  SEGMENT

AA  DW?

DATA  ENDS

END






여기서 DATA SEGMENT 내에 변수를 설정하는 방법은

AA DW ?

라고만 정의하면 됩니다.원래대로 라면 ,DW 의 오른쪽에 숫자를 써넣어야 하지만

여기서는 ? 로 대신 하고 있읍니다.이것은  AAA라고 하는 변수를 위해서 워드

영역을 확보하라(초기치는 아무것이라도 좋다)는 선언입니다.


MOV BX,OFFSET AA ; AA의 번지를 BX 레지스터에 넣는다.

MOV [BX],'AB'  ;문자상수 AB가 BX레지스터가 나타내는 번지에

지정

 됩니다.

즉,변수 AA에 문자상수 'AB'를 지정하는 겁눼求.

(예를 들면 AA 라는 번지상자를 BX 라는 레지스터창고에 넣읍니다. AB 라는 과일을

BX라는 레지스터창고를 열고 AA라는 번지상자에 넣읍니다.)

이 밖에

MOV [BX+SI+5],1234H

MOV AA,'AB'

도 가능합니다. 그러나 오퍼랜드 양쪽다 간접지정으로는 할 수없읍니다.

MOV [BX],[SI+3] ;오퍼랜드

양쪽다 간접지정이다.

MOV [BX],AA  ;변수

이름도 간접지정의 일종이다.

MOV BB,AA

참고로 MASM에서는 메모리 번지는 링커에 의해 동적(dynamic)으로 할당되기 때문에

 고정된 번지 지정방식(직접 지정방식)을 사용할수 없읍니다. 꼭 쓰고 싶을

경우에는 BX 레지스터등을 경유하든지 디버거 상에서 어셈블할 필요가 있읍니다.



ID:
PW:

     0 분
     4 분

자유게시판

건강백과 HOME

홈페이지 HOME

조   약     HOME

생활지혜 HOME

서식양식 HOME

법원 전산양식 검색

In Na zum

비공개 HOME

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

◁ 2002.9.1.~2021.4.11. ▷

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