내 경우 0Ah 인 Al 레지스터의 값을 표시하고 싶지만 여기에 내 코드가 있지만 nothig이 발생합니다. 확실하지는 않지만 내 문제는 내가 16 진수라고 생각합니다. 당신이 잊어 버린 모든Al 레지스터에 값 표시
; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
org 100h
.data segment
Array DB 0h,0h,0h,0h,0h
x db 0h
result db ?
.code segment
mov si,0
loop1:
;these 5 lines allows me to take
;input and let it be shown on the screen
mov ah,08h
int 21h
mov ah,02h
mov dl,al
int 21h
;those 3 lines allows me
;to start my code when
;enter button is pressed
mov bl,0Dh
cmp bl,dl
JZ start
;those 4 lines allow me
;to enter 4 chars and
;fill an array with them
;to use them later
mov array[si],dl
inc si
cmp si,5
jne loop1
start:
;putting each element in the
;array in a register to be
;able to deal with it
mov si,0
mov al,array[si]
mov bl,array[si+1]
mov cl,array[si+2]
mov dl,array[si+3]
;subtracting 30h from each
;number to turn it to its
;decimal form to deal with
;it as normal number
sub al,30h
sub bl,30h
sub cl,30h
sub dl,30h
;adding all numbers in
;variable called result
add al,cl
add al,bl
add al,dl
;printing
mov ah,02h
mov dl,al
int 21h
ret
이미지에 코드를 텍스트, 감사 인사에 게시하십시오. – sam
done, thanks @sam –
코드에 근본적인 문제가있는 것 같습니다. COM 또는 EXE 모델입니까? COM 인 경우 처음에는'.data '를 가질 수 없으며 코드로 실행됩니다 (첫 번째 명령은 코드에 대한 데이터 위에'jmp ... '가 있더라도'org 100h' 다음에 와야합니다). 그것이 EXE라면, 당신은'org 100h'을 가질 수 없으며'mov array [si], dl'처럼 사용하기 전에'ds'를 설정해야합니다 ... 나는 그들을 무시하고 다시 읽으려고 노력할 것입니다 귀하의 실제 문제입니다,하지만 당신은 몇 가지 더 많은 자습서를 시도하고 모든 것을 다시 읽고 올바른 예제를 몇 번 더 작동하는지 확인해야합니다 ... – Ped7g