운영체제 강의를 수강하며, masm2020-stu와 DoSBoX 0.74(WIIN32용)을 이용한 어셈블리어 코딩을 해보게 되었습니다.

오늘은 저같은 초심자분들을 위한 코드 불러오는 방법, 명령어등 들을 설명해보고자 합니다. 

 

 

 

우선 위의 2개의 프로그램을 다운로드 받은 후, masm2020-stu 폴더를 C: 디스크에 옮겨줍니다.

(마운트를 간단하게 하기 위해서인데, 밑에서 더 설명드리겠습니다.)

 

 

그 다음, DOSBOX를 실행시키면,

이런 화면을 보실 수 있을 텐데, 여기서 명령어들이나, 입력 데이터들을 주며

어셈블리어 코드를 실행시킬 수 있습니다.

 

 

 

C를 프로그래밍할때는 주로 비쥬얼 스튜디오에서 코드를 입력하고, 실행시키는 형태로 자주 하셨을텐데,

DOSBOX를 통해 어셈블리어를 코딩할 때에는, 코드를 메모장에 입력해 .asm파일로 masm 폴더에 넣어주고, 

그 asm파일을 DOSBOX에서 불러와 명령, 입력을 주며 결과를 얻는다고 생각하시면 될 것 같습니다.

 

 

 

우선, 밑의 사진과 같이 어셈블리어 코드를 메모장에 입력해준 후, 

원하는 이름.asm <<으로 파일 명을 정한 후, 위에서 C: 디스크에 옮겨놓은 masm폴더에 넣어줍니다.

그럼 원하는 어셈블리어 코드가 .asm 형식으로 masm폴더에 들어간 것입니다.

 

 

 

그럼 이제, 어떻게 DOSBOX에서 .asm파일을 불러와 C처럼 실행시킬 수 있는지가 궁금하실텐데,

여기서 위에서 말씀드린 마운트 과정이 필요합니다.

 

이와 같이, 'mount x: c:\(masm폴더명)' 과 같은 명령을 입력해주면

masm폴더를 x:로 마운트 했다는 걸 볼 수 있습니다.

 

 

이제 masm폴더 내에 있는 .asm파일들을 빌드해주는 명령어들을 쓴다면, 

위에서 작성한 코드들을 사용할 수 있을 것입니다.

 

 

그 전에, x:로 masm폴더를 가져왔기 때문에, 현재 z:에서 x:로 보고 있는 곳을 이동해야 합니다. 

 

이런 식으로 'x:'명령을 이용해 x:폴더를 DOSBOX가 바라보게 한 후

 

'ml (파일 명.asm)' 을 적으면,

위의 메모장에 적혀있던 어셈블리어 코드가 DOSBOX의 '12'라는 명령어로 넘어온 것입니다.

 

 

 

저 메모장의 코드가 '10개의 문자를 받으면, 스택을 이용해 입력받은 반대의 문자열을 뽑아내는 코드' 인데, 

 

 

 

명령어로 넘어온 '12'를 입력하면, 문자가 10개 들어올때까지 X:\>12의 밑줄이 깜빡입니다.

 

 

 

9번째 글자를 입력받을때까지는 아무런 반응이 없이 입력받기만 하다가, 

 

 

 

10번째 글자를 입력하자 마자 입력받은 문자열의 반대 순서로 새로운 문자열을 뽑아낸 결과를 볼 수 있었습니다.

 

 

 

이런식으로, 

1. 메모장에 어셈블리어 코드를 입력

2. masm폴더에 '파일명.asm'으로 저장

3. DOSBOX에서 masm폴더를 마운트

4. 마운트 후 파일명.asm 파일을 ml 명령을 통해 불러오기

5. 해당 명령을 사용해 결과 보기

순서와 함께 DOSBOX를 간단하게 사용해볼 수 있었습니다.

 

코드 설명이나 어셈블리어 공부 관련 글들은 앞으로 꾸준하게 올리도록 하겠습니다.

질문 있으시면 댓글 남겨주세요! 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기