我試圖將數字從txt文件加載到8086中的數組中。 我爲一位數字編號,但我不知道如何處理多個數字。從文件中將多字母數字加載到數組中
我的txt文件看起來是這樣的:
1:4
2:3
5:10
我應該負荷數組值,這是':'
後。
我的代碼如下所示:
org 100h
;load text file (coin stock)
load:
mov dx, offset file ; address of file to dx
mov al,0 ; open file (read-only)
mov ah,3dh
int 21h ; call the interupt
jc terminate ; if error occurs, terminate program
mov bx,ax ;
mov cx,1 ; read one character at a time
mov di, 0
putInArray:
lea dx, BUF
mov ah,3fh ;
int 21h
CMP AX, 0 ;
JZ terminate ;
mov al, BUF
cmp BUF, 3Ah ; compare if character is equal to ":"
JNE putInArray ; if not, jump back
array:
lea dx, BUF ; if yes: take next character
mov ah,3fh ;
int 21h
CMP AX, 0 ;
JZ terminate
cmp BUF, 13d
JE putInArray
mov al, BUF ;move character to AL
mov coinStock[di], al ; put character into array coinStock
inc di
jmp array ; repeat if not end of file.
terminate:
mov ah, 0 ; wait for any key...
int 16h
ret
file db "c:\coinstock.txt", 0
BUF db ?
coinStock db 3 dup(?)
END
您是否嘗試用調試程序遍歷代碼以查看可能出錯? –
是的,但我知道什麼是錯誤:),有三個選項:1)我只有'1'而不是10在陣列2的第3個位置)我有'0'而不是10 3)我有'1 '在第三個位置和'0'在第四個位置(如果我有一個更大的陣列當然) - 我不知道如何將超過1個數字號碼放入數組中 – gariaable
您可以將數字轉換爲字節或單詞將其存儲在一個字節或字的數組中,或者您可以複製ASCII字符併爲這些數字的地址創建一個指針數組(偏移量)。 – rkhb