Kod Assemblera nie działa

0

Witam. Zacząłem programować z Assemblerem i mam za zadanie napisać program, który to by wczytał linijkę jakiś znaków i wypisał liczbę dużych liter w tej linijce (np asd45GH, wynik = 2). Mam tu kod, lecz nie mogę go skompilować z powodu "Illegal instruction". Nie mam pojęcia nawet w której linijce popełniłem błąd... Jakieś propozycje? :)

 
.model small

.stack 100h

.data

type db "Your text: "
enter db 10, 13, "$"
bufer db 255
read db ?
result db "Result: $"
number db 0

.code

start:

mov ax, @data	
mov ds, ax	

mov ah, 9
mov dx, offset type
int 21h	

mov ah, 0Ah
mov dx, offset bufer
int 21h	

mov ah, 9
mov dx, offset enter
int 21h	

mov cl, read
mov bx, offset bufer
mov dl, 'A'
mov dh, 'Z'

loop:

CMP [ds:bx], dl	
JBE not	
CPM [ds:bx], dh	
JAE not	
INC number

not:
INC bx

DEC cl
CMP cl, 0	
JNE loop	

MOV byte ptr [ds:bx], '$'	

mov ah, 9
mov dx, offset result
int 21h

mov ah, 4Ch
mov al, 0
int 21h	

END start
0

CPM [ds:bx], dh

0

Ahh ta literówka... Lecz program tak czy siak nie działa :D Spróbuję sam rozwiązać już ten następny problem, dzięki :)

0

emu8086... ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1