Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > Как частично заполнить экран символами


Автор: sharq 24.10.2005, 10:07
Мне нужно заполнить экран 80х25 символом так, чтобы было заполнено пол-экрана по диагонали, т.е.
Цитата
aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaa
aaaaaaaaaaaaa
aaaaaaaaaa
aaaaaaaa
aaaaaa
aaaa
aa


Делаю два цикла, но что-то не получается:
Код

     mov AX, 0B800h
     mov ES, AX

     mov CX, 25
     mov BX, 0
     mov DX, 0

lexter: push CX

        mov AX, 80
        sub AX, DX
         
        mov CX, AX
  
        linter: mov AL, 'a'
                  mov ES:[BX], AL
                  add BX, 2
                  loop linter
        
        mov AX, 0
        add AX, DX    
        add DX, 4

        add BX, AX
      
        pop CX
        loop lexter 



Автор: Akina 24.10.2005, 10:23
алгоритмическая ошибка в строке 24.

Автор: sharq 24.10.2005, 15:43
Akina блин, а что именно, я понимаю, что неправильно указываю смещение для перехода на новую строку, как переделать не знаю...

Автор: sharq 24.10.2005, 17:23
Мне нужно сдвигаться на столько - сколько не достает символов до конца строки + 2 байта

Автор: sharq 25.10.2005, 14:00
Вот другой вариант, но тоже не так работает.
Почему? понять не могу.

Код

     mov CX, 25
     mov BX, 0
     mov SI, 0

 l1: push CX  
     mov CX, 0
     
     l2: cmp BX, SI
         jng adda
         mov AL, 'o'
         jmp dalee   
         adda:  mov AL, 'a'
         dalee: mov ES:[BX], AL
         add BX, 2
         loop l2

     add BX, 80
     add SI, 82

     pop CX
     loop l1 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)