:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
10/03/17 00:12
일단 수업시간 ppt를 잘 찾아보시구요... 혹시 시스템 프로그래밍 수업인가요? 구글링 찾아보면 그거 ppt있습니다. 꼭 필요하시면 이메일 주시면 ppt 보내드릴수도 있습니다. 교재마다 어셈문법이 달라서 뭐라 말을 못하지만, 데이타를 레지스터에 옮기고 옮기고 하는식인거 같네요.
mov는 피연산자 값에 따라 다른 결과를 보입니다. 참조한다고 생각하시면 일단 됩니다.
10/03/17 00:43
어셈블리 물어보신다면 C언어 정도는 하실 수 있으리라고 생각해서 간단히 설명드리면...
MOV는 C언어에서 =(대입문)에 해당한다고 보시면 됩니다. MOV AX, DATA라면 AX=DATA(정확히는 DATA라는 주소)쯤으로 해석할 수 있겠네요. AX가 뭐고 DS가 뭐고 21번 인터럽트가 뭐고까지 들어가면 제가 강좌를 하는 게 나을 정도가 될 것이기 때문에... 자세한 사항은 어셈블리 서적을 참고하시길 바랍니다............
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 류를 찾아보시면 되겠지요.
|