title image


Smiley Assembler
Hallo,



folgende Aufgaben hatte ich zu realisieren:



1.

In einem Register soll von 0 bis 20 gezählt werden. Der jeweilige Zählerstand ist als zweistellige Hexadezimalzahl auf dem Bildschirm untereinander darzustellen.



Mein Programm:



.MODEL SMALL

.STACK 200h

.DATA

ZAHL DB 2 DUP (?), 13, 10, '$'



.CODE

Start: mov ax, @data

mov ds, ax



mov cx, 0

mov bl, 16 ; Divisor

;mov cl, 4



M1: mov ax, cx

div bl ; Division

add ax, 3030h



cmp al, 39h

jna M2



;shl bx, cl

;shr bl, cl

;mov bx, 3030h



add al, 7 ; wenn größer 9, dann 7 hinzu





M2: mov [ZAHL], al ; Ergebnis

mov [ZAHL+1], ah ; Rest



mov ah, 9 ; Anzeige

mov dx, OFFSET ZAHL

int 21h



;mov dl, 10h ; neue Zeile

;mov ah, 2

;int 21h

;mov dl, 13h

;mov ah, 2

;int 21h



inc cx

cmp cx, 21h

jne M1



mov ah, 4Ch

int 21h

END Start



Allerdings werden immernoch die ASCII-Zeichen nach der 9 (: ; ?) angezeigt.

Was ist falsch? (Einige Zeilen sind auskommentiert, da man die Hexadezimalanzeige auch mit Schiebebefehlen realisieren kann.)

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: