8086환경에서 어셈블리를 공부할 수 있는 에물레이터.
마이컴을 C로만 다뤄보려다가 막혀서 어셈을 공부 중입니다.
피시통신 시절의 김병희님 강좌를 갖고 학습중이구요.
DEBUG.EXE 로 공부하다가 또 막혀서 어셈블러를 찾다가 여기까지 왔네요.
DEBUG.EXE -> NASM & GCC -> MASM -> EMU8086
그냥 뉴파일 열고 바로 명령어 써가면서 결과 확인해갈 수 있어서 매우 좋은 프로그램입니다.
www.openserver.co.kr에서 구할 수 있습니다. 감사합니다.
공부중>
MOV AX,DATA
MOV DS,AX
MOV BX,OFFSET AA ;AA의 오프셋번지를 BX에 저장
MOV AX,'AB' ;문자열AB를 AX에 저장
MOV [BX],AX ;BX=AX?? 대괄호 무엇인지...?
MOV CX,AA ;CX=AA
MOV DL,CH ;DL=CH
MOV AH,2 ;
INT 21H ;A출력
MOV DL,CL ;DL=CH
MOV AH,2
INT 21H ;B출력
MOV AH,4CH
INT 21H
;
;
DATA SEGMENT
AA DW?
>> 위는
AA라는 변수에 문자열 'AB'를 저장하고 AA의 주소값을 불러와서 화면에 AB를 차례로 출력하는 프로그램입니다.
AA DW?에서 오류가 납니다.
AA DW?는 AA라는 변수를 위해 워드만큼 공간을 확보하라는 의미이구요.
뒤에 물음표는 공간확보하면서 들어가는 값은 아무거나 상관없다. 이런 의미라고 합니다.
띄어쓰기 안했더니 오류나네요.
AA DW?
>> AA DW ? 하면 잘 됩니다.
C에선 그냥 int A이런식으로 하면 알아서 쓰레기값이 들어가는데 어셈은 변수 설정시 값을 지정하지 않으면(랜덤으로라도) 오류가 나는군요.
'노트정리 > 어셈블리' 카테고리의 다른 글
어셈블리 16비트 실습 환경 (0) | 2010.05.15 |
---|---|
XCHG : exchange data (0) | 2010.05.06 |
PIC 마이컴 명령어 셋 (0) | 2010.03.01 |
MPASM의 사용법 (0) | 2010.02.24 |
MOV : 8086과 PIC의 차이 (0) | 2010.02.24 |
어셈블리 구조체 (0) | 2010.02.23 |
문자열 출력 프로그램 복습 (0) | 2010.02.21 |
HEX to BIN (0) | 2010.02.14 |