1
我已經編寫了這段代碼,由於某種原因,它只打印部分句子,它也不會將DL
中的數字分配給字符串,而是打印出「心臟」。在8086程序集中打印一句話
我檢查了TurboDebugger,除了那部分,所有東西都完美無缺。
我添加相關的部分:
.MODEL SMALL
.STACK 100h
.DATA
ARR1 DW 333,20989,3456,2082
ARR2 DW 333,15,5436,2082
ARR3 DW ?
ANSWER DB 'The last digit is: X',13,10,'$'
TEN DW 10
.CODE
MOV AX,@DATA ; DS can be written to only through a register
MOV DS,AX ; Set DS to point to data segment
MAX:
CMP AX,10
;MAX<10
JL LESSTHAN10
;MAX>10
MOV DX,0
DIV TEN
MOV ANSWER[19],DL
JMP PRINTANSWER
PRINTANSWER:
MOV AH,9 ; Set print option for int 21h
MOV DX,OFFSET ANSWER ; Set DS:DX to point to answerString
INT 21h ; Print DisplayString
這裏是我的是組裝本的嘗試的截圖:
您是否介意在您的聲明中詳細說明「我檢查了TurboDebugger,除此之外,所有內容都完美無缺。」 – CodeWarrior
@CodeWarrior所有我需要的代碼,以使計算好去和DL拿到了3位像我需要的,但,當我到指定的答案串它賦予「心臟」,而不是3,它也不會打印字符串的開頭,就像我指定的那樣。 –
嘗試='加分升,48' –