С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
scorpion004
0 / 0 / 0
Регистрация: 09.02.2017
Сообщений: 17
1

Ввод с клавиатуры и вывод на экран символа и строки

02.11.2017, 15:27. Просмотров 973. Ответов 1

1. Напишите программу на языке ассемблера, которая:
- вводит с клавиатуры произвольный символ;
- выводит введен символ на экран;
- вводит с клавиатуры скан-код функциональной клавиши;
- выводит введен скан-код на экран.
- вводит с клавиатуры произвольный текст;
- выводит введенный текст на экран

Helppp
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2017, 15:27
Ответы с готовыми решениями:

Ввод символа и вывод на экран
Нужна помощь! При вводе символа «1» на экран выводится символ «а»; при вводе...

Ввод с клавиатуры и вывод на экран
Изучаю совсем недавно ASM, изучение идёт ну очееень тяжело. Помогите...

Ввод чисел с клавиатуры и вывод их на экран
какие ошибки?(ввод и вывод чисел с клавиатуры) TITLE EXMOVE...

A+b в ассемблере FASM - ввод с клавиатуры и вывод на экран
format PE console include 'win32ax.inc' start: mov EAX, 5d mov EBX, 6d...

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

1
ФедосеевПавел
Модератор
3860 / 2180 / 895
Регистрация: 01.02.2015
Сообщений: 7,263
05.11.2017, 22:01 2
Лучший ответ Сообщение было отмечено scorpion004 как решение

Решение

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
_STACK  segment para stack
        db      1024 dup(?)
_STACK  ends
 
_DATA   segment
        PromptChar      db      'Enter the char: ', '$'
        PromptString    db      0Dh, 0Ah, 'Enter the string: ', '$'
        PromptFuncKey   db      0Dh, 0Ah, 'Press the functional key: ', '$'
 
        MsgChar         db      0Dh, 0Ah, 'Entered character is "'
        Char            db      ?
                        db      '"', 0Dh, 0Ah, '$'
 
        MsgString       db      0Dh, 0Ah, 'Entered string is "', '$'
        Comma           db      '"', 0Dh, 0Ah, '$'
        CrLf            db      0Dh, 0Ah, '$'
 
        MsgFuncKey      db      0Dh, 0Ah, 'Entered scan code is '
        ScanCode        db      '00'
                        db      'h', 0Dh, 0Ah, '$'
 
        KbdBuf          db      80, ?, 81 dup(?)
 
        HexTable        db      '0123456789ABCDEF'
_DATA   ends
 
_TEXT   segment
        assume  cs:_TEXT, ds:_DATA, ss:_STACK
main    proc
        ;инициализация сегментного регистра данных
        mov     ax,     _DATA
        mov     ds,     ax
 
        ;ввод и вывод символа
        mov     ah,     09h
        lea     dx,     [PromptChar]
        int     21h
        mov     ah,     01h
        int     21h
        mov     [Char], al
        mov     ah,     09h
        lea     dx,     [MsgChar]
        int     21h
        ;ввод функциональной клавиши, вывод её скан-кода
        WaitFuncKey:
                mov     ah,     09h
                lea     dx,     [PromptFuncKey]
                int     21h
                mov     ah,     01h
                int     21h
                cmp     al,     0
        jne     WaitFuncKey
        mov     ah,     01h
        int     21h
        call    ByteToHex
        mov     word ptr [ScanCode],    ax
        mov     ah,     09h
        lea     dx,     [MsgFuncKey]
        int     21h
        ;ввод и вывод строки
        mov     ah,     09h
        lea     dx,     [PromptString]
        int     21h
        mov     ah,     0Ah
        lea     dx,     [KbdBuf]
        int     21h
        mov     cx,     0
        mov     cl,     [KbdBuf+1]
        lea     si,     [KbdBuf+2]
        add     si,     cx
        mov     [si],   byte ptr '$'
 
        mov     ah,     09h
        lea     dx,     [MsgString]
        int     21h
        mov     ah,     09h
        lea     dx,     [KbdBuf+2]
        int     21h
        mov     ah,     09h
        lea     dx,     [Comma]
        int     21h
        ;завершение программы
        mov     ax,     4C00h
        int 21h
main    endp
 
ByteToHex       proc
        push    bx
        push    cx
 
        mov     cx,     ax
        and     ax,     000Fh
        lea     bx,     [HexTable]
        xlat
 
        mov     ch,     al
        mov     al,     cl
        shr     ax,     1
        shr     ax,     1
        shr     ax,     1
        shr     ax,     1
        and     ax,     000Fh
        xlat
 
        mov     ah,     ch
 
        pop     cx
        pop     bx
        ret
ByteToHex       endp
 
_TEXT   ends
 
        end     main
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2017, 22:01

Организовать ввод с клавиатуры и вывод на экран результата Ассемблер
Не могу понять как организовать ввод отрицательных чисел с клавиатуры (можно ли...

Ввод переменных с клавиатуры и вывод результата операций на экран
Суть проблемы: Дана задача, решение которой которой написано ниже и так же...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru