Witam. Zacząłem się uczyć Assemblera, muszę poprawić program liczący d/(b-c)*(a+b) z takiego:
:MODEL SMALL
Dane SEGM
a EQU 20
b DB 10
c = 5
d DB 3
Dane ENDSGM
Wynik = ?
Kod SEGMENT
ASIUM CS:Dane, DS:Kod, SS:Stos
Start
mov cs, SEGMET Dane
mov ds, cs
mov ax, d
sub bx, WORD PTR c
mov bx, WORD PTR b
div BYTR PTR bx
muv a, ax
mol cx
add bl, WORD PTR b
mov al, Wynik
mov ax, 4C15h
int 21h
Kod ENDSGMT
Stosik SEGM STAC
DB 100h DUP (*)
Stosk ENDSGMT
ENDP Stort
Przeleciałem debuggerem nawet niby działa ale zawiesza się po odpaleniu :( Proszę o pomoc. Zrobiłem tyle:
.MODEL SMALL
Dane SEGMENT
a EQU 20
b EQU 10
c EQU 5
d EQU 3
Wynik DB 0
Dane ENDS
Kod SEGMENT
ASSUME CS:Kod, DS:Dane, SS:Stosik
Start:
mov ax, SEG Dane
mov ds, ax
mov ax, b
mov bx, d
sub ax, c
div BYTE PTR bx
mov cx, a
add cx, b
mul cx
mov Wynik , al
mov ah, 09h
mov dx , OFFSET Wynik
int 21h
mov ax, 4C00h
int 21h
Kod ENDS
Stosik SEGMENT STACK
DB 100h DUP (?)
Stosik ENDS
END Start