28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
1

Вывод таблицы символов через пробел

15.09.2012, 21:24. Показов 7665. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    .model     small             ; модель памяти, используемая для ЕХЕ
        .stack     100h              ; сегмент стека размером в 256 байт
        .code
start:  
    mov cx, 256            ; вывести 256 символов
        mov         dl,0       ; первый символ - с кодом 00
        mov         ah,2h           ; номер функции DOS "вывод символа"
cloop:  int         21h            ; вызов DOS
    inc         dl  
 
        
    mov ah,0
    mov al,dl
    mov bl,2
    div bl
    test ah,ah
        jnz        probel
 
        test        dl,0Fh     
        jnz         continue_loop  ; продолжить цикл,
 
 
 
 
        push        dx             ; иначе: сохранить текущий символ
        mov         dl,0Dh         ; вывести CR
        int         21h
        mov         dl,0Ah         ; вывести LF
        int         21h
        pop         dx             ; восстановить текущий символ
probel: 
      mov ax,0
      push dx
      mov ah,2h
      mov dl,''
      int 21h
      pop dx
     
 
      loop cloop
continue_loop:
mov ax,0
    mov ah,2h
        loop        cloop          ; продолжить цикл
 
              
        end        start
не получаеться вывести пробел почему то в коде проверку на четность делаю тоесть если не кратен то вставляю пробел но он не выводиться и в итоге прога просто выводит символы помогите разобраться
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.09.2012, 21:24
Ответы с готовыми решениями:

Программа - вывод определенных символов из ASCII-таблицы
Вот есть такая задача... Написать com-программу, которая выведет запрос про код начальной и...

Формирование и вывод на экран таблицы символов ASCII
Дан пример по строкам: stack_segment segment stack dw 32 dup (?) stack_segment ends ...

Ввод с клавиатуры и вывод на экран последовательности символов, цвет и фон чередуются через 2 символа.
Здравствуйте, напишите пожалуйста кто может комментарии к программе! Ввод с клавиатуры и вывод на...

Вывод на экран таблицы ASCII символов в рамке из символов псевдографики
Помогите пожалуйста

24
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
15.09.2012, 23:33 2
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.model     small 
.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,96
    pop cx
    loop b1
    mov ah,10h
    int 16h
    mov ah,4ch
    int 21h
end start
1
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 01:28  [ТС] 3
мне бы свод исправить

Добавлено через 2 минуты
zzzyyyxxx, и вашь код тоже не вставляет пробелы

Добавлено через 5 минут
уже вставляет а как сделать что еще и строка была пустая между строками
0
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
16.09.2012, 01:34 4
Цитата Сообщение от sergeu90 Посмотреть сообщение
zzzyyyxxx, и вашь код тоже не вставляет пробелы
А что вставляет?
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 01:35  [ТС] 5
мне надо свой код переделать что бы пробел вставлял вроде же делаю правильно
0
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
16.09.2012, 02:26 6
sergeu90, что-то Вас не поймёшь, то вставляет, то не вставляет. На кой предмет в Вашем коде проверка на чётность? Вывел один символ, следом - пробел. И т.д. Вывел 16 символов - 2 раза CrLf.
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 02:41  [ТС] 7
Vadimych, я проверил вставляет уже правильно только видите код замудренный мы еще так не проходили что бы писать я свой хотел бы исправить как то

Добавлено через 14 минут
Vadimych, мне нужно между символами делать пробел
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
16.09.2012, 03:35 8
sergeu90, а зачем вставлять пробелы? ты же запускал его(мой код)?
м/у символами пропуски(типа пробел).. ну впиши пробел, только толку? он же никак не будет отображён...
по поводу твоего кода, извиняй, у тебя там кукарача какая-то, я не понимаю твоей логики..

Цитата Сообщение от sergeu90 Посмотреть сообщение
как сделать что еще и строка была пустая между строками
вместо 96 впиши 256..
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 03:42  [ТС] 9
zzzyyyxxx, я уже разобрался обьясните почему у меня выводятся мои символы но там где символ в таблице ascii 10 он переводит его а не отображает значок как сделать что бы вывесля символ

Добавлено через 6 минут
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        .model small
    .stack 100h
        .code
start:
        mov         cx,15          ; вывести 256 символов
        mov         dl,0           ; первый символ - с кодом 00
        mov         ah,06h  
cloop:  int         21h            ; вызов DOS
        inc         dl 
    test dl,0Fh            
    jnz         continue_loop  ; продолжить цикл,
        
continue_loop:
        loop        cloop          ; продолжить цикл
       mov        ax,4C00h
        int        21h               
 
        end         start
вот хотел строку просо вывести для проверки а оно как дойдет до символа перехода на другую строку и все а мне надо что бы вряд шли
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
16.09.2012, 03:45 10
не уверен, но предположу: для вывода символов ты используешь функции в первой ah=2(int 21h) и в последней ah=6(int 21h)
вероятно они определяют является ли символ уравляющим или нет..
в твоём случае 10d = 0ah(переход на новую строку) что она и делает...
в моём же варианте, данные функции не использовались.. поэтому всё нормально..
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 03:46  [ТС] 11
zzzyyyxxx, а как можно обойти через мою функцию?
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
16.09.2012, 03:49 12
ну юзай текстовый видеобуфер да и всё.. как в моём примере..
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 03:50  [ТС] 13
zzzyyyxxx, понимаете мы его еще не проходили что бы писать через него,будет палевно мне бы вывети через 02h этот символ как нить
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
16.09.2012, 03:56 14
ну блин.. скажешь преподу, типа проявил инициативу и сам разобрал. да и всё..
если же неустраивает, то с этой 02 функцией, перенос объяснишь тем, что вывод происходит согласно таблице управляющих символов. она есть в книге Зубкова.
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 03:57  [ТС] 15
zzzyyyxxx, тоесть иначе это никак не сделаешь через 02h можно так обьяснить?
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
16.09.2012, 04:01 16
ну если у тебя только с помощью этой функции, то я сомневаюсь, что ты сможешь вывести так, как хочешь..
скажешь преподу, как я выше расписал..
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 04:01  [ТС] 17
zzzyyyxxx, можно коментарий пожалуйста к вашему коду по строчкам хочу его разобрать досконально
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
16.09.2012, 04:06 18
, ну ты даёшь, построчные комменты? да нуу...
или ты не знаешь, что такое xor di,di или mov ax,0200h?
тут суть вся в том, что вывод происходит ч/з видеобуфер, его адрес - 0b800h и всё, остальное найдёшь в выше упомянутой книге..
0
28 / 29 / 5
Регистрация: 17.10.2009
Сообщений: 739
16.09.2012, 04:11  [ТС] 19
zzzyyyxxx, просто например не могу понять зачем в начале в ax загоняется 3 потом дальше этот код из книги,если да то скажи с какой и страницы я почитаю про него
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
16.09.2012, 04:16 20
про графические режимы найди и почитай, там всё это описано..
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2012, 04:16
Помогаю со студенческими работами здесь

Ввод нескольких чисел через пробел, некорректный вывод
первое число выводится корректно, а второе нет( .model small .stack 100h .data array dw ?, ?...

Вывод символов через один в двух регистрах
помогите с программой вывода символов через один в двух регистрах

Вывод символов таблицы ASCII в указанном диапазоне (программа выводит только один символ)
Есть программа, она должна выводить указанные символы таблицы ASCII. Указываем начальный индекс и...

Вывод данных из нескольких строк таблицы в одну строку через разделитель (пробел, запятую)
Добрый день! Есть табличка с адресами: addr ul1 ul2 dom вул. 1...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru