dichlormetan
1
TASM

Составить программу для ввода строки символов с клавиатуры в буфер и вывод этой строки на экран

08.11.2011, 21:15. Показов 55256. Ответов 8
Метки нет (Все метки)

Составить программу для ввода строки символов с клавиатуры в буфер и вывод этой строки на экран

Как это хоть приблизительно сделать???
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2011, 21:15
Ответы с готовыми решениями:

Составить программу для ввода матрицы с клавиатуры в буфер и вывод этой измененной матрицы на экран
Привет обитателям киберфорума! Уже где-то месяц я никак не могу найти информации по данной теме....

Написать программу разрешающую ввод строки не более 80 символов и вывод на экран этой строки красным цветом
Ассемблер. Написать программу разрешающую ввод строки не более 80 символов и вывод на экран этой...

После ввода с клавиатуры произвольного строки определить и вывести на экран строку символов только с четными н
После ввода с клавиатуры произвольного строки определить и вывести на экран строку символов только...

После ввода с клавиатуры произвольного строки определить и вывести на экран количество цифр и сумму символов в нем
3) После ввода с клавиатуры произвольного строки определить и вывести на экран количество цифр и...

8
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
08.11.2011, 21:22 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
25
26
27
data segment
     string db 100,100 dup ('$')
data ends
 
code segment
assume cs:code,ds:data
start:
    mov ax, data
    mov ds, ax
    
    mov ah,0ah
    lea dx,string
    int 21h 
    
    mov string+1,0ah
    
    mov ah,9
    lea dx,string+1
    int 21h
    
    mov ah, 10h
    int 16h
 
    mov ax, 4c00h
    int 21h
code ends
end start
2
Заблокирован
09.11.2011, 19:57 3
не могли бы вы подробнее объяснить код???...преимущественно между 10 и 20 строками?
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
09.11.2011, 20:48 4
Assembler
1
2
3
4
5
6
7
8
9
10
11
string db 100,100 dup ('$')  ;состоит из '$' т.к. это символ конца строки(для функции вывода)
 
        mov ah,0ah        ;Считать строку символов из STDIN в буфер
        lea dx,string       ;адрес буфера  (где, 0байт - кол-во введённых символов не будет превышать этого значения, у меня там 100, хотя надо было 102)
        int 21h 
        
        mov string+1,0ah ;поскольку первые 2 байта - тех. характер. массива, то выводить мне их не надо, поэтому в 1 я пишу символ перехода на новую строку.
        
        mov ah,9
        lea dx,string+1 ;вывод +1 (т.е. вывожу символ новой строки и саму строчку)
        int 21h
4
Заблокирован
09.11.2011, 21:08 5
а если я пробую делать посимвольный ввод, т.е. ввожу символ - проверяю допустим ли он, а потом записываю в строку.как это сделать?вот мои наброски.естественно не рабочие=(
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vvodstr macro leng
local m1,m2
m1: mov ah,16h    ;запрос нажатия клавиши
    int 10h
    mov dl,al
    cmp dl,20h
    jl m1
    cmp dl,7eh
    jg m1           
    mov ah,02h  ;вывод символа на экран
    int 21h
    mov [bx],dl               
    inc bx
    inc cl
    cmp cl,leng 
    je m2
    jne m1
m2: 
    mov [bx],24h
endm
0
766 / 310 / 11
Регистрация: 27.05.2011
Сообщений: 703
09.11.2011, 21:22 6
так можно:
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
data segment
     string db 0ah,100 dup ('$')
data ends
 
code segment
assume cs:code,ds:data
start:
    mov ax, data
    mov ds, ax
    
    mov cx,99
    lea bx,string+1
        mov ah,1
n1:
    int 21h
    
    mov [bx],al
    inc bx
        
    cmp al,'.'     ;текст кончается точкой, или люб др символом по твоему желанию
    je ex
    loop n1
 
ex: 
    mov ah,9
    lea dx,string
    int 21h
    
    
    mov ah, 10h
    int 16h
 
    mov ax, 4c00h
    int 21h
code ends
end start
2
Заблокирован
10.11.2011, 07:57 7
а не могли бы вы посмотреть мой приведённый код?...не могу понять в чём ошибка...

Добавлено через 34 минуты
вот я немного исправила, теперь ошибок не показывает, но почему-то вводит бесконечную строку, а мне надо строку длиной входного параметра leng.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vvodstr macro leng
local m1,m2
m1: mov ah,00h    ;запрос нажатия клавиши
    int 16h
    mov dl,al
    cmp dl,20h
    jl m1
    cmp dl,7eh
    jg m1           
    mov ah,02h  ;вывод символа на экран
    int 21h
    mov [bx],dl               
    inc bx
    inc cl
    cmp cl,leng 
    je m2
    jne m1
m2: mov dl,24h
    mov [bx],dl
endm
Добавлено через 1 час 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
25
26
27
28
29
30
vvodstr macro
    xor dx,dx
    mov cx,70
    lea bx,string+1
n1:
    mov ah,10h
    int 16h
    cmp al,10
    je ex
    cmp al,13
    je ex        
    push dx
    mov dl,al
    mov ah,02h
    int 21h
    pop dx
    mov [bx],al
    inc bx
    inc dx                
    cmp dx,cx
    je ex
    loop n1
ex:                   
        mov dl, 10          ;перевод курсора на новую строку
    mov ah, 02h
    int 21h
        mov dl, 13    
    mov ah, 02h
    int 21h
endm
только один вопрос возник по поводу строки
string db 0ah,100 dup ('$')
string - имя строки
db - тип
100 dup ('$') - я так понимаю значит всю строку заполнить символами '$'?
а что значит 0ah??
=(объясните пожалуйста!
0
Ушел с форума
Автор FAQ
15703 / 7377 / 980
Регистрация: 11.11.2010
Сообщений: 13,319
10.11.2011, 08:25 8
Alenka=), это значит, что содержимое string будет выведено с новой строки
1
Заблокирован
10.11.2011, 10:33 9
вопрос решён.невнимательность моя меня погубит.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2011, 10:33
Помогаю со студенческими работами здесь

Ввести с клавиатуры строку символов.Признак окончания ввода строки - нажатие клавиши 'ввод'.Программа должна определить длину введенной строки L
Помогите пожалуйста:gbye: Ввести с клавиатуры строку символов.Признак окончания ввода строки -...

Ввод с клавиатуры строки символов, вывод строки в обратном порядке на принтер
Составить программу для ввода с клавиатуры строки символов "Периферийные устройства ЭВМ" в окно...

Вывод строки на экран после ввода 1 слово это строки
Стоит задача вывести целую строку из файла введя в диалоговое окно 1 слово из этой строчки. Из...

Составить программу ввода символов с клавиатуры
Составить программу ввода символов с клавиатуры. Вывести полученные символы на дисплей в режиме...

Дан текст (массив строк). Составить программу, которая в начале каждой строки текста припишет длину этой строки
(длина - это количество символов в строке).

Написать программу, которая для введенной строки выдает список символов, используемых в этой строке
Имя входного файла стандартный ввод Имя выходного файла стандартный вывод Ограничение по...


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

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

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