Permalänk
Medlem

Addera två heltal i Assembly

Har kört fast i denna enkla uppgift som går ut på att addera två heltal mellan 0 och 9. Det är 80x86 processorn som det handlar om.

TITLE ;************************************************ ;Adderar ihop två tal till en summa ;************************************************ DOSSEG .MODEL SMALL .STACK 100h .DATA CR EQU 0dh LF EQU 0ah CRLF DB 13,10,"$" Ledtext1 DB "Skriv f",148,"rsta talet: ","$" Ledtext2 DB "Skriv andra talet: ","$" Ledtext3 DB "Summan av talen: ","$" Ledtext4 DB "Fel v",132,"rde",13,10,"$" X1 DB ? X2 DB ? .CODE .STARTUP ;Läs in ett tecken ;TAL1 ;Skriv ledtext mov dx,offset Ledtext1 mov ah,9 int 21h ; Las: mov ah,1 int 21h ; mov ah,0 cmp al,30h jl feltal ; cmp al,39h jg feltal ; sub al,30h ; mov X1,al hit: mov ah,1 int 21h cmp al,CR jne hit ; Radbyte på skärmen mov dx,offset CRLF mov ah,9 int 21h ;TAL2 ;Skriv ledtext mov dx,offset Ledtext2 mov ah,9 int 21h ; Las2: mov ah,1 int 21h ; mov ah,0 cmp al,30h jb feltal ; mov ah,0 cmp al,39h ja feltal ; sub al,30h ; mov X2,al dit: mov ah,1 int 21h cmp al,CR jne dit ; ;Radbyte på skärmen mov dx,offset CRLF mov ah,9 int 21h ;Skriv ledtext för utskrift av summan mov dx,offset Ledtext3 mov ah,9 int 21h ;Addera ihop talen clc ;Nollställer Carryflaggan mov al,X1 adc al,X2 jc ental ;Sätta tiotalet i AH och entalet i AL mov bl,10 sub ah,ah ; mov al,0 div bl ;Utskrivning ifall talet är större än 10 cmp ah,1 jne ental add ah,30h mov dl,ah mov ah,2 int 21h ental: ;Skriv ut summan add al,30h mov dl,al mov ah,2 int 21h jmp Avsluta ; ; feltal: ; Radbyte på skärmen mov dx,offset CRLF mov ah,9 int 21h ; mov dx,offset Ledtext4 mov ah,9 int 21h ;Avslutar programmet Avsluta: .EXIT END

Visa signatur

"The thought that the state has lost its mind and is punishing so many people is intolerable. And so the evidence has to be internally denied" - Arthur Miller

Permalänk
Avstängd
Permalänk
Medlem

Nu kan jag tyvärr inte kompilera och testa, men jag skulle gissa att felet ligger här.

;Sätta tiotalet i AH och entalet i AL mov bl,10 sub ah,ah ; mov al,0 div bl

Den gör inte det du säger att den skall göra. tiotalet kommer ligga i al och ah kommer vara tom.

Citat:

Ursprungligen inskrivet av emilsson
*lol*

Lite mer konstruktiv kan du väl fan vara!

Visa signatur

Teeworlds - För dig som gillar gulliga saker med stora vapen.

Permalänk
Hedersmedlem
Citat:

Ursprungligen inskrivet av emilsson
*lol*

Tänkte du tillföra tråden något eller väntar du bara på att bli avstängd?

Visa signatur

|| SWECLOCKERS.COM || oskar@sweclockers.com || OSkar000.se || Fototråden ||
|| Gundeman || Bartonofix || GundemanX2 || Obelinux || Nexofix || Filofix || Ircofix ||
|| Tillse att hjärnan är inkopplad innan fingrarna vidrör tangentbordet ||
|| D300 | D700 | 24/2,8 | 28/2,8 | 35/2 | 50/1,8 | 55/2,8 | 85/1,8 | 105/2,5 | 200/4 | 300/4,5 | 10-20 | 24-70/2,8 | 75-150/3,5 | 80-200/2,8 ||