티스토리 뷰

반응형
TITLE LOOP.ASM
DOSSEG
.MODEL SMALL
.STACK 100h
.DATA
.CODE
MAIN:
MOV AX, @DATA
MOV DS, AX
MOV CX, 8H
MOV AL, 3AH
AGAIN1:
MOV DL, AL
;MOV DL, 3AH
SUB DL, CL
MOV AH, 02H
INT 21H
LOOP AGAIN1
;
MAINOUT:
MOV AH, 4CH
INT 21H
END MAIN


어셈블리어 공부를 해본 적이 있다면,
출력결과를 예상해보기 보란다
'23456789' 라고 추측하였기를..

하지만,
어셈블러를 통해 해석 후 실행시켜보면,
출력결과는 아마도
2!@$%!%@#&^
이따구 모양이 나올 것이다

도대체, 왜 그러는가;

물론, MOV DL, AL 명령을 MOV DL, 3AH 로 수정하면,
원하는 결과를 얻을 수 있다.

그냥 그냥 그런데로 넘어갈까 하다가,
당연히 바르게 돌아갈꺼 같은 코드가 엉뚱한 결과를 내버리니,
도저히 참을 수가 없어서,
원인분석을 좀 해보려고 미친듯이 삽질하다가 결국 포기해버렸다. OTL;



혹시, 원인을 발견하셨다면
저에게 뜨거운 감동을 전해주세요~*

내가 사용했던 어셈블러와 링커^^;

반응형
댓글