Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 递增程序集中的数组_Arrays_Assembly_X86_Tasm - Fatal编程技术网

Arrays 递增程序集中的数组

Arrays 递增程序集中的数组,arrays,assembly,x86,tasm,Arrays,Assembly,X86,Tasm,使用tasm,16位,我试图制作一本字典(目前限制为6个单词,所有单词都有5个字符)输入单词后,将输入一个句号。我已将单词存储在数组中,但无法检查数组中的下一个元素(递增)。我已提及,以供参考,但无济于事 这是我的密码 .model large .data ind db 00d nl db 10d,13d,'$' mne db "Not Equal$" me db "Equal$" buf 99,?,99 dup(?) w0 db "hello$" w1 db "which$" w2 db "b

使用tasm,16位,我试图制作一本字典(目前限制为6个单词,所有单词都有5个字符)输入单词后,将输入一个句号。我已将单词存储在数组中,但无法检查数组中的下一个元素(递增)。我已提及,以供参考,但无济于事

这是我的密码

.model large
.data
ind db 00d
nl db 10d,13d,'$'
mne db "Not Equal$"
me db "Equal$"
buf 99,?,99 dup(?)
w0 db "hello$"
w1 db "which$"
w2 db "balls$"
w3 db "table$"
w4 db "chair$"
w5 db "apple$"
words db offset w0,db offset w1,db offset w2,db offset w3
      db offset w4,offset w5
.code

main proc

mov ax,@data
mov ds,ax
mov es,ax

;mov si,byte ptr words

;take user input
mov ah,0ah
mov dx,offset buf
int 21h

mov ah,09h
mov dx,offset nl
int 21h

mov di,offset buf
add di,2

;//checkbuflength
lenchck:
mov bx,0
again:
mov al,[di]
cmp al," "
je wrong
inc bl
inc di
cmp al,"."
jne skip
cmp bl,06d ;+1 total char count (including fullstop)
je stringmatch
jmp wrong
skip:    
jmp again

;//end check
stringmatch:
mov di,offset buf
add di,2

;mov si,offset words
mov bx,0
mov bl,byte ptr words
mov si,bx
mov cx,05d
repe cmpsb
je equal

inc byte ptr words,1
inc ind
cmp ind,07d
je wrong
mov di,offset buf
add di,2
jmp stringmatch

wrong:
mov dx,offset mne
jmp print

equal:
mov dx,offset me
print:
mov ah,09h
int 21h

mov ah,4ch
int 21h

main endp
end main
程序首先通过将长度与句号()进行比较来检查长度,如果不相等,则打印不相等,如果长度相等,则检查输入的字符


需要紧急援助。

您的
单词
数组应该是
dw
,否?您不能“增加数组”(除非您的意思是增加数组中的所有元素)。您要做的是将
单词的地址(偏移量)放入寄存器,从该地址加载第一个单词的地址,并使用获得的第二个地址进行字符串比较,然后递增寄存器以指向
单词中的下一个元素。
@michael您的意思是“从该数组加载第一个单词的地址吗?” .. 我如何增加我的寄存器以指向下一个元素?像‘inc字’、‘mov-si、byte-ptr字’??因为我已经偏移了我的“单词”数组中的地址,请参考我的答案