powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите с ассемблером
4 сообщений из 4, страница 1 из 1
Помогите с ассемблером
    #37009005
Фотография gluchenso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогите. Программа должна в цикле сканировать нажатые клавиши. В случае нажатия - выводить сообщение о том, какая клавиша была нажата. Вопросы:

1. На нажатие клавиши сообщение выводит. Но вместе с тем текстом, который прописал я - выводит всякую хрень (вложение).
2. Почему-то и при нажатии Enter и BackSpace выводит одинаковое сообщение.

Код: plaintext
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.
cseg segment
assume cs:cseg, ds:cseg

org 100h

start:
_loop:
mov ah,  1 
int 21h

cmp al,  13 
jz _enter

cmp al,  8 
jz _backspace

mov ax, 0003h
int 10h
jmp _loop


_enter:
mov ax, 0003h
int 10h
mov ah,  9 
mov dx, offset mess_enter
int 21h
jmp _loop

_backspace:
mov ax, 0003h
int 10h
mov ah,  9 
mov dx, offset mess_backspace
int 21h
jmp _loop
 
 
mess_enter db 'Enter$'
mess_backspace db 'Backspace$'

 
cseg ends
end start
...
Рейтинг: 0 / 0
Помогите с ассемблером
    #37009250
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluchenso,

Код: plaintext
1.
org 100h

и

kurs .exe

не вяжется.
инструкция org 100h используется для .com
...
Рейтинг: 0 / 0
Помогите с ассемблером
    #37009295
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) У тебя DX устанавливается по отношению к CS а не к DS. DS показывает на сегмент .data который объявлен неизвестно где и неизвестно как. Отсюда и фигня в выводе текстов.
2) Зачем ты на каждый чих меняешь режим экрана? mov ax, 0003h / int 10h достаточно звать один раз при старте программы, а лучше и вообще не звать. Поверь ОС.
3) А где собственно говоря вывод кодов остальных клавиш?
...
Рейтинг: 0 / 0
Помогите с ассемблером
    #37009304
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gluchenso,

Код: plaintext
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.
. 386 
assume cs:cseg, ds:cseg 
cseg segment use16
org  0 
start:
mov ax, cseg
mov ds, ax

_loop:
mov ah,  1 
int 21h

cmp al,  13 
je _enter

cmp al,  8 
je _backspace

mov ax, 0003h
int 10h
jmp _loop


_enter:
mov ax, 0003h
int 10h
mov ah,  9 
mov dx, offset mess_enter
int 21h
jmp _loop

_backspace:
mov ax, 0003h
int 10h
mov ah,  9 
mov dx,  offset mess_backspace
int 21h
jmp _loop
 

mess_enter db "Enter$"
mess_backspace db "Backspace$"
 
cseg ends
end start

обрати внимание на
Код: plaintext
1.
2.
mov ax, cseg
mov ds, ax
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите с ассемблером
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]