운영체제 강의를 수강하며, 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를 간단하게 사용해볼 수 있었습니다.
코드 설명이나 어셈블리어 공부 관련 글들은 앞으로 꾸준하게 올리도록 하겠습니다.
질문 있으시면 댓글 남겨주세요!
'프로그래밍 공부' 카테고리의 다른 글
백준 SW 역량 테스트 준비(기초) - 1978번 : 소수 찾기 (1) | 2020.06.06 |
---|---|
백준 SW 역량 테스트 준비(기초) - 2609번 : 최대공약수와 최소공배수 (1) | 2020.05.31 |
백준 INU 송년 코드페스티벌 2019 - 18229번 내가 살게, 아냐 내가 살게 (1) | 2020.05.30 |
백준 INU 송년 코드페스티벌 2019 - 18228벌 펭귄추락대책위원회 (0) | 2020.05.30 |
백준 COCI 2006/2007 Contest 1 - 3052번 나머지 (1) | 2020.05.29 |
최근댓글