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

홈페이지HOME

PHP

JavaScript

HTML

CSS

드롭다운메뉴

제로보드4

도   움   말

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

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

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

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

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

관주성경 TTS 일반파일 TTS

바이블로 Bible_ro 다운로드

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

[도움말 보기] 바로가기

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


이 파일은 압축 상태에서 깨진 것을 복구하였으므로, 내용 일부의 훼손이 있을지 모릅니다.

위 동호회 대조?


asm_83.


XCHG,SUB,SBB 명령


     27 이형문 buju8t 12/30 957

    17  XCHG,SUB,SBB 명령을  알아 봅시다.







앞에서 공부한  결과가 메모리에 역워드 형식으로 저장되어 있었지만,

알기 쉬운 형태로 저장해 봅시다. 그럼 2개의 데이터를 교환하는 명령

XCHG 를 사용해봅시다.

 오퍼랜드의 지정방법은 MOV명령 등과 같읍니다만,직접 숫자를 교환할

수 없읍니다.


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

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

XCHG  

+- 메모리  (

 "  ) -+ , +- 메모리  (

 " ) -+






* ADD5.ASM ;ADD4 의 결과 값이 3001이 0130 으로 0123  2301

러 바꿔

들어

있는 것을 XCHG 명령을 써 3001,0123이 들어가게 하는

프로그램


MAIN  SEGMENT

ASSUME CS:MAIN,DS:DATA

;

MOV AX,DATA

MOV DS,AX

;

MOV AX,1000H

MOV BX,8000H

MOV CX,2000H

MOV DX,8123H

ADD BX,DX

ADC AX,CX

XCHG AL,AH

XCHG BL,BH

MOV ANS1,AX

MOV ANS2,BX

;

MOV AH,4CH

INT 21H

;

MAIN  ENDS

;

DATA  SEGMENT

ANS1  DW 0

ANS2  DW 0

DATA ENDS

END






 데이터의 상위 바이트와 하위 바이트를 교환하기 위해서는 16비트

레지스터인 AX 레지스터를 상위 바이트 AH와 하위 바이트 AL 로 나

누어 생각할 수 있읍니다.


-NADD5.EXE  

-L  

-U0,24  

113C:0000 B83F11  MOV AX,113F


113C:0003 8ED8  MOV

DS,AX

113C:0005 B80010  MOV AX,1000


113C:0008 BB0080  MOV BX,8000


113C:000B B90020  MOV CX,2000


113C:000E BA2381  MOV DX,8123


113C:0011 03DA  ADD

BX,DX

113C:0013 13C1  ADC

AX,CX

113C:0015 86C4  XCHG

 AL,AH

113C:0017 86DF  XCHG

 BL,BH

113C:0019 A30000  MOV [0000],AX


113C:001C 891E0200  MOV [0002],BX


113C:0020 B44C  MOV

AH,4C

113C:0022 CD21  INT

21  

113C:0024 0000  ADD

[BX+SI],AL  

-

이 번에는 데이터 세그먼트가 별도로 설정되어 있읍니다. 이 경우 어셈블

할 때 데이터 세그먼트의 위치가 결정되지 않고 링커에 의해 상대적인 배

치가 정해진 다음 실행할 때에 절대번지가 결정됩니다.

 여기서 데이터를 보려면 세그먼트 베이스와 오프셋 번지를 같이 지정하여

내용을 표시하지 않으면 안됩니다.






다음의 MOV AX,DATA이 메모리상에 로드 되었을 때,


113C:0000 B83F11  MOV AX,113F

 

 

 역어셈블한 결과 데이터 세그먼트에 세트되는 값은 113FH 라는 걸 알

수 있읍니다.


-D113F:0,F

113F:0000  00 00 00 00 E8 64 F2 A1-E4 66 A3 D4 66 FF 36 CC .....d...


 +---------+

 데이터는

모두 0 으로 세트되어 있읍니다.


D 커맨드는 데이터를 보이라는 DUMP 명령입니다.


-G=0,22


AX=4C30  BX=2301  CX=2000  DX=8123  SP=0000  BP=0000

 SI=0000  DI=0000

DS=113F  ES=112C  SS=113C  CS=113CIP=0022 NV UP

EI PL NZ NA PO NC

1  13C:0022 CD21  INT

21  

-D113F:0,F  

113F:0000  30 01 01 23 E8 64 F2 A1-E4 66 A3 D4 66 FF 36 CC 0..#.d...

-Q  

결과는 0번지부터 30010123과 같은 식으로 저장되어 있읍니다.

데이타 세그먼트와 같이 프로그램 중에 다시 설정되는  것과 같은 경우에

는 세그먼트 베이스와 오프셋 번지의 양쪽을 다 지정해야 합니다.






*  뺄셈 명령 SUB


SUB 명령은 첫번째 오퍼랜드로 부터 두번째 오퍼랜드의 내용을 뺀다음 결

과를 첫번째 오퍼랜드에 지정합니다.


* SUB1.ASM ---변수 AAA 에서 100을 빼는 프로그램


MAIN  SEGMENT

ASSUME CS:MAIN,DS:MAIN

;

MOV AX,MAIN

MOV DS,AX

MOV AL,100

SUB AA,AL

;

MOV AH,4CH

INT 21H

;

AA  DB 200

;

MAIN  ENDS

END


-U0,F

113C:0000 B83C11  MOV  AX,113C


113C:0003 8ED8  MOV

DS,AX

113C:0005 B064  MOV

AL,64

113C:0007 28060F00  SUB [000F],AL


113C:000B B44C  MOV

AH,4C

113C:000D CD21  INT

21  

113C:000F C8  DB

 C8  

-



ID:
PW:

     0 분
     1 분

자유게시판

건강백과 HOME

홈페이지 HOME

조   약     HOME

생활지혜 HOME

서식양식 HOME

법원 전산양식 검색

In Na zum

비공개 HOME

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

◁ 2002.9.1.~2018.8.16. ▷

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