Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Problem z niewykonującą się instrukcją skoku .[Assembler 8086] 16 bitowy.

#1
Problem z niewykonującą się instrukcją skoku .[Assembler 8086] 16 bitowy.
Witam,
Assembler 8086 16 bitowy. Wypisać piramidę z liter, zatrzymać się na X bo inaczej by urwało szpicę tj. A oraz BB. Zatrzymać trzeba się kiedy liczba linii równa jest 2, ponieważ zmniejszam o jeden po każdym wypisaniu. Gdy użytkownik wciśnie klawisz ma się dopisać Y i Z. Problem polega na wykonaniu zatrzymania i wznowieniu programu. Próbowałem już różnych skoków. I zawsze otrzymuję to samo, tzn. prosi mnie o znak po każdej linii a nie tylko gdy ich ilość jest równa 2, rysuje od razu całą piramidę oraz po wznowieniu pojawia się jakiś śmieciowy matrix a nie rysowanie Y i Z.

Prosiłbym o wskazówkę gdzie może być coś źle, ponieważ sam nie potrafię znaleźć błędu.

Mała uwaga zamieszczam kod tylko z segmentu program ponieważ tylko z niego korzystam, w segmencie dane nie mam danych(wszystko w rejestrach) ze stosu również nie korzystam.

Kod:
mov bx, 26 ;licznik_wierszy
wiersze:

  ;tu wypisuje spacje
  mov cx, bx ; licznik_spacji = licznik_wierszy + 12
  add cl, 12
  mov ah, 02h
  mov dl, 32 ;spacja
  spacje:
    int 21h
  loop spacje

  ;tu wypisuje litery
  mov cl, 53 ;licznik_znakow = 53 - licznik_wierszy * 2
  sub cl, bl
  sub cl, bl
  ;mov ah, 02h - already set
  mov dl, 65 + 26 ;kod_znaku = 'A' + 25 - licznik_wierszy
  sub dl, bl
  litery:
    int 21h
  loop litery

  ;tutaj przechodze do nowej lini(enter)
  ;mov ah, 02h - already set
  mov dl, 0ah
  int 21h

dec bx
mov cx,2
JG wieksze ;JNE JN JZ JNZ też nie działa
JGE wiekszelubrowne

wiekszelubrowne:
;tu czekam na byle jaki klawisz
dec ah ;02h - 1 = 01h
int 21h

wieksze:
jnz wiersze


;tu czekam na byle jaki klawisz jeszcze raz aby program od razu się nie znikał
dec ah ;02h - 1 = 01h
int 21h

mov ax,4c00h ;zakonczenie
int 21h

Pozdrawiam,[/quote]
Pamietaj nie musisz mi pomagac ale i tobie moze byc potrzebna pomocOczy
 System operacyjny: windows_seven Przeglądarka: chrome
#2
RE: Problem z niewykonującą się instrukcją skoku .[Assembler 8086] 16 bitowy.
Witam, może prościej byłoby sobie napisać to najpierw w C, a później dokonać tłumaczenia do assemblera?
 System operacyjny: linux Przeglądarka: firefox
#3
RE: Problem z niewykonującą się instrukcją skoku .[Assembler 8086] 16 bitowy.
Będę musiał spróbować tak zrobić. Ciągle nie udało mi się poprawić tego kodu.
Pamietaj nie musisz mi pomagac ale i tobie moze byc potrzebna pomocOczy
 System operacyjny: windows_seven Przeglądarka: chrome
Programy: Polecane / Nowe / Inne




Podobne wątki (Problem z niewykonującą się instrukcją skoku .[Assembler 8086] 16 bitowy.)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [Assembler]Wczytanie dwóch zmiennych i operacje na nich Pentium4320 2 8811 13.01.2016, 21:13
Ostatni post: Pentium4320
  Jak zrobić z tego animację skoku? Dreamer1x6xX 5 9813 29.05.2015, 20:02
Ostatni post: Szachista
  Assembler - błąd przy kompilacji (pierwszy program) chwm 1 4437 17.11.2014, 22:03
Ostatni post: fanfilmu

Skocz do: