Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ASM - Spacja w asemblerze

plcsystem 10 Maj 2015 02:33 630 4
  • #1 10 Maj 2015 02:33
    plcsystem
    Poziom 15  

    Cześć wszystkim!

    Dopiero zaczynam z assemblerem i napotkałem taki problem:
    potrzebuję, żeby konsola wyrysowała mi coś takiego:
    *****
    .*****
    ..*****
    ...*****
    ....*****
    Zamiast tego otrzymuje:
    *****
    .*****
    .***** itd.

    Nie mam pomysłu w jaki sposób dodać o jedną spacje więcej przy każdym obiegu pętli. Jakbyście mogli rzucić okiem i coś podpowiedzieć, byłoby fajnie. Poniżej kod:

    Kod: asm
    Zaloguj się, aby zobaczyć kod

    0 4
  • #2 10 Maj 2015 09:19
    Dżyszla
    Poziom 42  

    Stwórz pętlę przed tą pętlą wyświetlającą * na identycznej zasadzie z tą różnicą, że do cx nie będziesz wrzucał stałej ale wartość zwiększaną w pętli głównej (możesz chwilowo odkładać cx na stos przed, następnie przypisywać np cx=5-cx. Zauważ, że nie będziesz musiał odkładać cx drugi raz przed drugą pętlą.

    0
  • #3 10 Maj 2015 10:13
    plcsystem
    Poziom 15  

    Dzięki za odpowiedź, ale nie do końca Cię rozumiem :). Jaki zasięg miałaby mieć ta pętla i jeszcze, o którą wartość zwiększaną w pętli głównej Ci chodzi, bo wydawało mi się, że z każdym obiegiem dekrementujemy CX.

    0
  • #4 10 Maj 2015 11:20
    -psiak-
    Poziom 32  

    - spacje wypisuj w osobnej pętli
    - jedna spacja na każdym obrocie pętli
    - umieść tą pętle tuż przed wyświetleniem gwiazdek
    - przed pierwszym wyświetleniem gwiazdek 0 obrotów pętli ze spacjami.

    0
  • #5 11 Maj 2015 13:38
    kinggustav
    Poziom 20  

    A jak długi ma byc ten wzorek? Może dałoby sie zdefiniować maksymalny ciąg znaków do wyświetlenia (może nawet łącznie z 0d0a) i zmieniać tylko miejsce od którego w danej linii zaczyna wyświetlać. Jeżeli niedługi to tak można, a na konsoli raczej długi wygląda słabo.

    0