Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2012, 13:54   #1
sergeu102
 
Регистрация: 29.05.2009
Сообщений: 3
По умолчанию вывод таблицы символов через пробел

у меня вот такой код получился он все делает правильно выводит символы ascii таблицы через пробел и между строками пустая строка есть,но вопрос что не хватает 3 строки снизу почему так или просто на экран не помещается
Код:
.model     small
.stack 100h
.code
start:  

  mov  ax, 3
        int  10h
    mov ax,0b800h
    mov es,ax
    xor di,di   
    mov cx,10h
    mov ax,0200h
b1: push cx
        mov cx,10h
        b2: mov word ptr es:[di],ax
            add di,4
            inc ax
            loop b2
            add di,256
    pop cx
    loop b1
    mov ah,10h
    int 16h
    mov ah,4ch
    int 21h
end start

Последний раз редактировалось Stilet; 16.09.2012 в 14:46.
sergeu102 вне форума Ответить с цитированием
Старый 16.09.2012, 15:37   #2
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Цитата:
Сообщение от sergeu102 Посмотреть сообщение
у меня вот такой код получился
Обманывать не хорошо. Не иначе Вы и тот, первый код так же написали, как и этот.

Последний раз редактировалось vadimych; 16.09.2012 в 15:50.
vadimych вне форума Ответить с цитированием
Старый 16.09.2012, 16:57   #3
sergeu102
 
Регистрация: 29.05.2009
Сообщений: 3
По умолчанию Re: Вывод таблицы символов через пробел

да вы правы это был не я,но я не могу понять почему не выводит 3 строчки последние не помещаются
sergeu102 вне форума Ответить с цитированием
Старый 16.09.2012, 17:23   #4
sergeu102
 
Регистрация: 29.05.2009
Сообщений: 3
По умолчанию Re: Вывод таблицы символов через пробел

Код:
.model   tiny
        .code
        org      100h    ; Начало СОМ-файла
start:
        mov      ax,0003h
        int      10h     ; Видеорежим 3 (очистка экрана
                         ; и установка курсора в 0, 0)
        mov      dx,0    ; DH и DL будут использоваться
                         ; для хранения положения курсора.
                         ; Начальное положение - 0,0
        mov      si,256  ; SI будет счетчиком цикла
        mov      al,0    ; Первый символ - с кодом 00h
        mov      ah,9    ; Номер видеофункции "вывод символа с атрибутом"
        mov      cx,1    ; Выводится один символ за раз
        mov      bl,00011111b
                         ;атрибут символа - белый на синем
cloop:
        int      10h     ; Вывести символ на экран
        push     ax      ; Сохранить текущий символ и номер функции
        mov      ah,2    ; Номер видеофункции 2 -
                         ; изменить положение курсора
        inc      dl      ; Увеличить текущий столбец на 1
        int      10h     ; Переместить курсор
        mov      ax,0920h ; АН = 09, AL = 20h (ASCII-код пробела)
        int      10h     ; Вывести пробел
        mov      ah,2    ; Номер видеофункции 2
        inc      dl      ; Увеличить столбец на 1
        int      10h     ; Переместить курсор
        pop      ax      ; Восстановить номер функции в ah
                         ; и текущий символ в al
        inc      al      ; Увеличить AL на 1 - следующий символ
        test     al,0Fh  ; Если AL не кратен 16,
        jnz      continue_loop
                         ; продолжить цикл,
        push     ax      ; иначе - сохранить номер функции
                         ; и текущий символ
        mov      ah,2    ; Номер видеофункции 2
        inc      dh      ; Увеличить номер строки на 1
	inc 	 dh
        mov      dl,0    ; Столбец = 0
        int      10h     ; Установить курсор на начало следующей строки
        pop      ax      ; Восстановить номер видеофункции
                         ; и текущий символ
continue_loop:
        dec      si      ; Уменьшить SI на 1,
                         ; если он не стал нулем - продолжить
        jnz      cloop   ; CX используется внутри цикла,
                         ; так что нельзя использовать команду LOOP
                         ; для его организации
        ret              ; Завершение СОМ-файла
        end      start


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 17.09.2012 в 11:33.
sergeu102 вне форума Ответить с цитированием
Старый 17.03.2023, 15:56   #5
Vladimir.1982
Форумчанин
 
Регистрация: 30.04.2018
Сообщений: 171
По умолчанию

Цитата:
Сообщение от sergeu102 Посмотреть сообщение
model tiny
.code ...
Это какой язык ассемблера?
Vladimir.1982 вне форума Ответить с цитированием
Старый 17.03.2023, 16:06   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Судя по отсутствию кучи меток с @ пойдет и на tasm 5 версии, но вполне может быть собран и при помощи masm 6 версии
macomics вне форума Ответить с цитированием
Старый 08.04.2023, 15:41   #7
Vladimir.1982
Форумчанин
 
Регистрация: 30.04.2018
Сообщений: 171
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Судя по отсутствию кучи меток с @ пойдет и на tasm 5 версии, но вполне может быть собран и при помощи masm 6 версии
Спасибо!
Vladimir.1982 вне форума Ответить с цитированием
Старый 09.04.2023, 16:34   #8
Vladimir.1982
Форумчанин
 
Регистрация: 30.04.2018
Сообщений: 171
По умолчанию

Цитата:
Сообщение от sergeu102 Посмотреть сообщение
у меня вот такой код получился он все делает правильно выводит символы ascii таблицы через пробел и между строками пустая строка есть,но вопрос что не хватает 3 строки снизу почему так или просто на экран не помещается
а вот код который выводит символы ASCII кода без черных линий:
Код:
.model tiny
.code
org 100h

start:

mov ax, 0003h
int 10h

mov dx, 0
mov si, 256
mov al, 0
mov ah, 9
mov cx, 1
mov bl, 10101111b

cloop:
int 10h
push ax
mov ah, 2

inc dl
int 10h
mov ax, 0920h
int 10h
mov ah, 2
inc dl
int 10h
pop ax

inc al
test al, 0Fh
jnz continue_loop

push ax

mov ah, 2
inc dh
mov dl, 0
int 10h
pop ax

continue_loop:
dec si

jnz cloop

ret
end start
Vladimir.1982 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL/Pl - вывод таблицы через функцию Alex_Axel SQL, базы данных 4 01.07.2011 16:45
[NASM] Вывод на экран таблицы ASCII-символов Balizard Помощь студентам 0 16.05.2011 08:14
Пробел через каждые 2 числа KillJoy Паскаль, Turbo Pascal, PascalABC.NET 7 22.12.2010 17:25
Записать функцию заменяющую (массиве символов) все числа на пробел. fsi Паскаль, Turbo Pascal, PascalABC.NET 2 01.06.2010 20:09