[asm] 2 programy (korekta)

0

Nie ukrywajac nie radze sobie z tym do konca. W programie sa pewne bledy i nie jestem w stanie znalezc wszystkich.
Oto pierwszy program obliczajacy najmniejsza liczbe w tablicy:

                .HODEL  TIN

Kod             SEGNEMT

                ORG:    256h
                ASSUME  CS:Dane, DS:Kod, SS:

Start:

DL_TABLICA      EQU     10
Tablica         DB      01h, 02h, 00h, 10h, 12h, 33h
                DB      15h, 09h, 11h, 08h, 0Ah, 00h
Najmniejsza     DB      !

                jmp     Poczatek

Poczatek:
                mov     ah, [dx]
                mov     dx, DL_TABLICA

Petla:
                mov     bx, SEGMNT Tablica
                cmp     dl, [bx]
                jae     Petla
                muv     al, [cx]
                dec     bx
Skok:
                lop     Skok

                mov     ax, Najmniejsza

                mov     ax, 4C13h
                int     21h

Dane            END

                ENDPROG

Kod po mojej lekkiej korekcie wyglada nastepujaco:

                .MODEL  TINY

Kod             SEGMENT

                ORG    256h
                ASSUME  CS:Dane, DS:Kod, SS:

Start:

DL_TABLICA      EQU     12
Tablica         DB      01h, 02h, 00h, 10h, 12h, 33h
                DB      15h, 09h, 11h, 08h, 0Ah, 00h
Najmniejsza     DB      ?

                jmp     Poczatek

Poczatek:
                mov     ah, [dx]
                mov     dx, DL_TABLICA

Petla:
                mov     bx, SEGMENT Tablica
                cmp     dl, [bx]
                jae     Petla
                mov     al, [cx]
                dec     bx
Skok:
                loop     Skok

                mov     ax, Najmniejsza

                mov     ax, 4C13h
                int     21h

Dane            END

                END start

Lecz nadal cos jest nie tak...
Do drugiego na razie nawet nie probuje podejsc a kod wyglada nastepujaco (program obliczajacy wzor: (3a-b/a)(d+3)):

                .MODEL: SMAL

Stos            SEG

a               DB      20
b               =       10
c               EQU     3
Wynik           DB      ?

ENDSEG          Dane

Kod             SEG

                ASJUM   CS:Start, DS:, SS:Stos

d               DW      5

Start:
                mov     ax, ds
                mov     ax, SEG Kod

                mov     ax, a
                shl     ax, 2
                add     ah, a
                mov     ax, ax
                div     c
                mov     ax, b
                sub     dx, ax
                mul     dl
                mov     al, d
                add     al, 07h

                mov     ax, WORD PTR Wynik

                mov     ax, 4C5h
                ind     21h

Dane            ENDSEG

Stosik          SEGM    SACK

                DB      100h DOOP [?]

Kod             ENDSEG

                END     Stop
0

tu praawie w kazdej linijce sa bledy, porownaj te 3 programy miedzy soba. zacznij od 'model',
cs na data, a ds na kod ? muv ? doop ? dlaczego start jest przed danymi i dlaczego dane sa wykonywane ? przesuniecie 256h ? i wiele wiele innych, ale to chyba twoj kolos/zadanie domowe.

0
flabra napisał(a)

tu praawie w kazdej linijce sa bledy, porownaj te 3 programy miedzy soba. zacznij od 'model',
cs na data, a ds na kod ? muv ? doop ? dlaczego start jest przed danymi i dlaczego dane sa wykonywane ? przesuniecie 256h ? i wiele wiele innych, ale to chyba twoj kolos/zadanie domowe.

Po 1 to sa 2 programy, a nie 3. Co juz swiadczy o powierzchownym podejsciu do tematu. Oczekuje konkretnych poprawek/podpowiedzi/rad , a wiekszosc ktore wymieniles zostaly poprawione (w tym samym poscie w dodatku!) wiec twoja wypowiedz jest kompletnie bezuzyteczna w dodatku nie wiadomo czy piszesz o programie nr 1 czy 2.

Na poczatku chcialbym sie skupic na 1 programie. Drugi program jest w wersji surowej czyli z oczywistami bledami ktorych nie poprawialem poki co.

0

Jeszcze tego nie poprawiłeś? To jest może godzina z pierwszym lepszym kursem w ręce, a Ty dwa tygodnie czekasz na jałmużnę? [glowa]
Poza tym widzać od razu, że flabra pisze o obu programach...

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