所以我有一个txt文件。我想阅读这些文字并将它们存储在一个数组中。然后我想将数组内容输出到屏幕。当我这样做时,我只是在数组的第一个索引中得到单词的第一个字母。我正在努力解决这个问题,我真的可以使用一些帮助。
所以这是我的txt文件:
observation
worshipping
description
nondescript
eliminating
survivalist
destructive
infestation
surrounding
persecution
interesting
explanation
recognition
programming
personality
hospitality
distinguish
devastation
nightvision
engineering
x
当程序点击x时,请停止阅读。
.DATA:
cr EQU 0dh ; carriage return character
Lf EQU 0ah ; line feed
MAXNBRS EQU 255
LEN EQU 13
.STACK 4096 ; reserve 4096-byte stack
.DATA ; reserve storage for data
inputStrings DWORD MAXNBRS DUP (?)
count WORD ?
inputStr BYTE LEN DUP(0),0
prompt BYTE "Enter a string: ", 0
prompt2 BYTE "The number of strings entered is", 0
comp BYTE "x ",0
然后我从txt文件中读取循环:
readInStrings MACRO array
lea ebx, array
mov al, comp
mov cx, 0
START_LOOP:
output prompt ;enter a string
input inputStr, 13 ;read in a line
inc cx ;increase count
output inputStr ;output the string
output carriage ;newline
cmp inputStr, al ;if string == x
je END_LOOP ;end loop
mov dl, inputStr ;store string into byte register
mov [ebx], dl ;move string into array
add ebx, 2 ;increase index of array. I dont know how much
jmp START_LOOP ;jmp to begin
END_LOOP:
dec cx ;since we dont want 'x' to be part of out length, dec cx
itoa count, cx
output carriage
output prompt2
output count
atoi count
mov count, ax
output carriage
output carriage
ENDM
所以我是:
输出提示,然后输入13的inputStr。
因为我们读了一个新单词而增加了计数。
比较看看是否是'x'
将单词移入BYTE寄存器。
将单词移入数组
将数组增加到下一个索引(非常确定这是错误的)
现在当我输出数组的第一个索引时,我的输出只是'o',它应该是'观察'
谁能看到我做错了什么?