Error:
add dh, dl ;dh为键号(0-15)
mov al, 01h
mov dx, CPORT
out dx, al
mov al, codes[dh] ;输出显示
mov dx, APORT
out dx, al
Der Fehlersatz lautet:
mov al, codes[dh] ;输出显示
Ursachenanalyse: Codes ist ein DB-Array. Um auf die dh-te Nummer in Codes zuzugreifen, sollte di oder si als Array-Index verwendet werden.
Lösung: dh hat nur acht Stellen und di ist 16 Stellen. Um zu versuchen, di dx zuzuweisen, sollte der Gesamtwert von dx gleich den hohen acht dh sein:
mov dl, dh
xor dh, dh
mov di, dx