TITLE HW4 (EXE)
STACK SEGMENT PARA STACK 'STACK'
DW 32 DUP(0)
STACK ENDS
DATASEG SEGMENT PARA 'DATA'
;MYPLACE DB 'II$'
MYPLACE DB 'I like ice cola and my big pig like Ipad$';I=7
INUM DB '00$'
DATASEG ENDS
CODESEG SEGMENT PARA 'CODE'
MAIN PROC FAR
ASSUME SS:STACK, DS:DATASEG, CS:CODESEG
MOV AX, DATASEG
MOV DS, AX
MOV AX, 'Ii'
MOV CX, 40
LEA SI, MYPLACE
LOOP1:
CMP [SI], AH
JE LOC1
CMP [SI], AL
JE LOC1
JMP LOC2
LOC1:
INC DX
LOC2:
INC SI
DEC CX
JNZ LOOP1
;binary to ascii
MOV AX, DX
MOV CX, 10
LEA SI, INUM+1
LOOP2:
CMP AX, CX
JB LOC3
XOR DX, DX
DIV CX
OR DL, 30H
MOV [SI], DL
DEC SI
JMP LOOP2
LOC3:
OR AL, 30H
MOV [SI], AL
MOV AH, 09H
LEA DX, INUM
INT 21H
MOV AX, 4C00H
INT 21H
MAIN ENDP
CODESEG ENDS
END MAIN
다 잘되는데 어셈블, 링크후 출력을 하면 이상한 값이 출력됩니다...
알파벳을 카운트하는 과정을 지워버리고 직접 DX에 값을 넣어 출력해보면 정상적으로 출력되는것으로 보아 카운트 과정에 뭔가 문제가 있는것 같긴 한데
전 도대체 뭐가 문제인지를 알수가 없네요;;
masm 6.11로 어셈블, 링크했습니다 |