PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2010/03/16 22:47:54
Name younha
Subject 어셈블리어 질문이요.
강의 랩시간에 하는 건데,
ppt파일로 올라온 예제코드조차 해석이안되서 문제입니다.
간단하게 어떤 특정 문자열을 출력하는 프로그램을 짜는건데요
코드는 다음과 같습니다.

DATA SEGMENT
DATA ENDS


CODE SEGMENT
         ASSUME CS:CODE, DS:DATA
        START:
             MOV AX, DATA
             MOV DS, AX
          
             MOV AX, DATA
             MOV DS, AX

             MOV AH, 02H
             MOV DL, 'C'
              INT 21H

            MOV AH, 4CH
                   INT 21H
CODE ENDS
END START

각각의 줄이 의미하는것좀 알려주세요.
수업시간에 이론을 들어도모르겠고, 문법은 따로 가르쳐주지도않고 답답해서
예제를 통해 공부를 해보고자 올립니다.

마지막 두줄이 프로그램증료, 그 윗줄이 문자열을 출력한다. 정도의 의미를 인터넷을 통해알아내긴했는데 잘모르겠습니다.
( MOV AX, DATA
MOV DS, AX
이부분이 없어도 문자열이 출력되네요. 근데 예제에 있으므로 어떤 의미가 있는지 알고싶습니다.)

아 그리고 혹시 어셈블리 언어를 공부할 수 있는 좋은 자료가 있다면 알려주세요.~

그나저나 이영호선수는 정말-_-;










통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
WizardMo진종
10/03/17 00:12
수정 아이콘
일단 수업시간 ppt를 잘 찾아보시구요... 혹시 시스템 프로그래밍 수업인가요? 구글링 찾아보면 그거 ppt있습니다. 꼭 필요하시면 이메일 주시면 ppt 보내드릴수도 있습니다. 교재마다 어셈문법이 달라서 뭐라 말을 못하지만, 데이타를 레지스터에 옮기고 옮기고 하는식인거 같네요.

mov는 피연산자 값에 따라 다른 결과를 보입니다. 참조한다고 생각하시면 일단 됩니다.
WizardMo진종
10/03/17 00:13
수정 아이콘
http://www.asmlove.co.kr/wiki/wiki.php

예전에 공부할때 자료 받아가던 곳 입니다.
큐리스
10/03/17 00:43
수정 아이콘
어셈블리 물어보신다면 C언어 정도는 하실 수 있으리라고 생각해서 간단히 설명드리면...
MOV는 C언어에서 =(대입문)에 해당한다고 보시면 됩니다.
MOV AX, DATA라면 AX=DATA(정확히는 DATA라는 주소)쯤으로 해석할 수 있겠네요.
AX가 뭐고 DS가 뭐고 21번 인터럽트가 뭐고까지 들어가면 제가 강좌를 하는 게 나을 정도가 될 것이기 때문에...
자세한 사항은 어셈블리 서적을 참고하시길 바랍니다............
Cazellnu
10/03/17 09:22
수정 아이콘
어셈블리는 한명령어가 컴퓨터의 한 오퍼레이션이라고 이해하면 쉽습니다.
보통 AX,DS 라고 되어있는건 레지스터일 가능성이 높구요.
INT라는건 인스트럭션이라는 말이고, 학교에서 배우는 어셈블리라면 인텔의 8086기반일경우가 많을텐데
관련서적 검색 해 보시면 될듯합니다.
지구사랑
10/03/17 10:22
수정 아이콘
오랜만에 보는 인텔 8086 계열에 DOS interrupt service군요.

MOV AX, DATA; MOV DS,AX는 DATA의 위치를 DS(data segment register)로 옮기는 겁니다. (;는 assembly에서는 comment로 사용되곤 하지만 줄을 나누기 위해 편의상 사용했습니다.) 왜 동일한 내용을 두 번 반복했는지는 잘 모르겠군요. 말씀하신 대로 위의 예제에서는 사용되고 있지 않지만 통상 data segment에 들어 있는 data을 index register(SI, DI 같은)로 접근할 경우 예제와 같은 초기화를 code 초기에 해줍니다.

MOV AH, 02H; INT 21H와 MOV AH, 4CH; INT 21H는 DOS interrupt service입니다. 즉, AH(AX의 MSB)에 원하는 service number를 주고 INT 21H를 부르면 특정한 function이 수행되는 거지요. 실제 service number에 대한 기억은 희미한데, 위의 예제를 보니 앞의 것은 DL(DX의 LSB)에 저장된 값을 화면으로 출력하는 service이고, 뒤의 것은 마무리(즉 program을 끝낼때 호출하는) service입니다. DOS interrupt service들을 이제 와서 본다는 것이 어떤 의미가 있는지는 모르겠지만, 찾는다면 MS-DOS reference manual 류를 찾아보시면 되겠지요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
76918 온게임넷 회원가입 안되는게 맞나요? [4] FrOm-HeLL1719 10/03/17 1719
76917 워크래프트2와 블리자드 기업에 대해서 질문합니다. [13] 이히리기우구1646 10/03/17 1646
76916 [급]태국여행갈때 필요한 서류(여권 등)? [9] 고양이털때문2166 10/03/17 2166
76915 하드디스크 드라이브 문자에 해당하는 하드가 뭔지 알 수 있나요? [2] 오만과나태1972 10/03/17 1972
76914 스팸문자 신고 못하나요? [1] DeadOrUndead2122 10/03/17 2122
76913 프린터 인쇄창 관련 질문입니다 [3] 마다마다다네~1819 10/03/17 1819
76912 핸드폰 구입관련 질문입니다. [9] 정지연2121 10/03/17 2121
76910 프로리그 최강의 종족라인은? [25] wish burn2161 10/03/17 2161
76909 루시드드림(자각몽) 에 대해 잘 아시는 분 있나요? [8] 반전2581 10/03/16 2581
76908 회사다니시는 분에게 MS 오피스 버전 질문 드립니다. [8] 강희최고2247 10/03/16 2247
76907 아이폰 현재 어디서 사는게 가장 저렴하고 확실할까요? 그리고 2년 사용한다고 가정한다면... [12] 래토닝2480 10/03/16 2480
76905 간단한 수학 하나 질문드려요 [5] Mraz2098 10/03/16 2098
76904 옷 구매하실때 어디를 주로 이용하시나요. [20] 율본좌2426 10/03/16 2426
76903 조두순이든 강호순이든 김길태든... [40] KnightBaran.K2366 10/03/16 2366
76901 일반화학 잘하시는분들! [2] 무제2208 10/03/16 2208
76899 차량용 주차번호판,액새서리 구입 관련 질문입니다. [1] 낼름낼름1678 10/03/16 1678
76898 숨김파일 해제가 안됩니다!!! [4] 테란의폐태자3056 10/03/16 3056
76897 밤에는 어떤 것을 먹어야 할까요? [12] Go_TheMarine2231 10/03/16 2231
76896 어셈블리어 질문이요. [5] younha1720 10/03/16 1720
76895 팥빙수 질문입니다! [2] ??1925 10/03/16 1925
76894 C언어 파일 입출력 관련해서 질문드립니다. [1] 마이클스코필4876 10/03/16 4876
76892 [건의] 피지알 사이트 바탕색을 좀 바꾸면 안될까요? [9] let8pla2109 10/03/16 2109
76891 현실 축구에서 포텐?? [5] dan161818 10/03/16 1818
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로