Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32

у меня два вопроса. 1) как сделать выход по нажатию клавии ESC 2) как вывести ответ.

10.06.2010, 19:32. Показов 5631. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот код
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
ideal
model small
stack 256
 
dataseg
op1 db 1
op2 db 1
op3 db 1
op4 db 1
op5 db 1
op6 db 1
op7 db 1
op8 db 1
op9 db 1
pr  db 0
um1 db 0
um2 db 0
um3 db 0
um4 db 0
um5 db 0
um6 db 0
res db 0
;mes7   db  0dh,0ah,'EXIT$'
 
codeseg
start: 
mov ax,@data
mov ds,ax
 
 
 
mov ah, 10h
int 16h
cmp al,'q'
;jne f1
mov ax,0003h
int 10h
;---------------------Result---------------------
mov ax,0
mov al,[op1]
imul [op5]
mov [pr], al
mov al,[op9]
imul [pr]
mov [um1],al
mov al, [op2]
imul [op6]
mov [pr], al
mov al, [op7]
imul [pr]
mov [um2],al
mov al,[op3]
imul [op4]
mov [pr], al
mov al, [op8]
imul [pr]
mov [um3], al
mov al, [op3]
imul [op5]
mov [pr], al
mov al, [op7]
imul [pr]
mov [um4],al
mov al, [op2]
imul [op4]
mov [pr], al
mov al, [op9]
imul [pr]
mov [um5], al
mov al, [op1]
imul [op6]
mov [pr], al
mov al, [op8]
imul [pr]
mov [um6], al
 
mov al,[um1]
add al,[um2]
 
mov [pr],al
mov al, [um3]
add al,[pr]
 
sub al, [um4]
 
sub al, [um5]
sub al, [um6]
mov [res], al
 
mov dl,0
 
mov dl,30
mov al, [res]
 
add al, dl
mov [res], al
;mov ax,[res]
mov ah,9h
lea dx,[res]
;printf([res])
int 21h
;-------------------------------------------------
mov ah,10h
int 16h
 
f1:
mov dx, 4c00h
int 21h
exit: mov ax,4c00h
int 21h
end start
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2010, 19:32
Ответы с готовыми решениями:

Как сделать выход из консоли по нажатию Esc?
как сделать выход из консоли по нажатию Esc?

Как сделать выход из формы по нажатию Esc?
То есть как запустить функцию выхода по нажатию Esc в программе, срабатывающею при нажатии кнопки выход (то есть мою функцию)?

Как сделать выход по ESC
org 100h old dw 0 jmp start number dw 0 c dw 0 start: xor ax,ax mov es,ax cli

16
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.06.2010, 20:01
код клавиши esc - 27. соответственно
Assembler
1
2
3
4
mov ah, 10h
int 16h
cmp al,27
jz EXIT
Для вывода чисел смотри тут
Ввод и вывод чисел в различных системах счисления
1
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32
10.06.2010, 20:06  [ТС]
че т ошибку выдает((( неправильный прыжок
п.с. я в ассемблере полныл ноль
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.06.2010, 20:12
возможно слишком длинный? можно
Assembler
1
2
3
4
je _exit
...
_exit:
jmp exit
так не будет ограничения длины( в смысле длина будет ограничена сегментом)
1
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32
10.06.2010, 20:13  [ТС]
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
115
ideal
model small
stack 256
 
dataseg
op1 db 1
op2 db 1
op3 db 1
op4 db 1
op5 db 1
op6 db 1
op7 db 1
op8 db 1
op9 db 1
pr  db 0
um1 db 0
um2 db 0
um3 db 0
um4 db 0
um5 db 0
um6 db 0
res db 0
;mes7   db  0dh,0ah,'EXIT$'
 
codeseg
start: 
mov ax,@data
mov ds,ax
 
 
 
mov ah, 10h
int 16h
mov ah, 10h
int 16h
cmp al,27
jz EXIT
 
;---------------------Result---------------------
mov ax,0
mov al,[op1]
imul [op5]
mov [pr], al
mov al,[op9]
imul [pr]
mov [um1],al
mov al, [op2]
imul [op6]
mov [pr], al
mov al, [op7]
imul [pr]
mov [um2],al
mov al,[op3]
imul [op4]
mov [pr], al
mov al, [op8]
imul [pr]
mov [um3], al
mov al, [op3]
imul [op5]
mov [pr], al
mov al, [op7]
imul [pr]
mov [um4],al
mov al, [op2]
imul [op4]
mov [pr], al
mov al, [op9]
imul [pr]
mov [um5], al
mov al, [op1]
imul [op6]
mov [pr], al
mov al, [op8]
imul [pr]
mov [um6], al
 
mov al,[um1]
add al,[um2]
 
mov [pr],al
mov al, [um3]
add al,[pr]
 
sub al, [um4]
 
sub al, [um5]
sub al, [um6]
mov [res], al
 
mov dl,0
 
mov dl,30
mov al, [res]
 
add al, dl
mov [res], al
;mov ax,[res]
mov ah,9h
lea dx,[res]
;printf([res])
int 21h
;-------------------------------------------------
mov ah,10h
int 16h
 
;f1:
;mov dx, 4c00h
;int 21h
_EXIT:
 
jmp exit
 mov ax,4c00h
int 21h
end start

посмотри плз.. так???
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.06.2010, 20:15
jz - это короткий переход, по моему не далее 128 байт

Добавлено через 1 минуту
Цитата Сообщение от Diana081 Посмотреть сообщение
mov ah, 10h
int 16h
mov ah, 10h
int 16h
cmp al,27
jz EXIT
а зачем два раза?)
0
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32
10.06.2010, 20:16  [ТС]
никак никак.. со мной все запущено

(Это просто женская логика))))
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.06.2010, 20:18
можно так:
Assembler
1
2
3
4
5
6
7
8
mov ah, 10h
int 16h
cmp al,27
jz _exit
jmp _l
_exit
jmp exit
_l:
0
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32
10.06.2010, 20:22  [ТС]
я утонула в ошибках
Relative jump out of range by 0039bytes

Добавлено через 3 минуты
Цитата Сообщение от vital792 Посмотреть сообщение
_exit jmp exit _l:
это вконец?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.06.2010, 20:29
он как раз и говорит о том что слишком длинный прыжок. Нет
_exit:
jmp exit - как можно ближе к jz _exit - чтобы между ними не было 128 байт, и важно чтобы на метку _ext не управление передавалось только по jz _exit и никак по другому
1
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32
10.06.2010, 20:40  [ТС]
n ты взорвал мой мозг! можешь, если не трудно мне в прогу это вставить?? плз.. я тебе башку сделаю
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.06.2010, 20:49
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
115
116
117
118
119
ideal
model small
stack 256
 
dataseg
op1 db 1
op2 db 1
op3 db 1
op4 db 1
op5 db 1
op6 db 1
op7 db 1
op8 db 1
op9 db 1
pr  db 0
um1 db 0
um2 db 0
um3 db 0
um4 db 0
um5 db 0
um6 db 0
res db 0
;mes7   db      0dh,0ah,'EXIT$'
 
codeseg
start: 
mov ax,@data
mov ds,ax
 
 
 
mov ah, 10h
int 16h
cmp al,'q'
;jne f1
; проверка esc
cmp ah, 27
jz _exit
jmp _begin
_exit:
jmp exit
_begin:
mov ax,0003h
int 10h
;---------------------Result---------------------
mov ax,0
mov al,[op1]
imul [op5]
mov [pr], al
mov al,[op9]
imul [pr]
mov [um1],al
mov al, [op2]
imul [op6]
mov [pr], al
mov al, [op7]
imul [pr]
mov [um2],al
mov al,[op3]
imul [op4]
mov [pr], al
mov al, [op8]
imul [pr]
mov [um3], al
mov al, [op3]
imul [op5]
mov [pr], al
mov al, [op7]
imul [pr]
mov [um4],al
mov al, [op2]
imul [op4]
mov [pr], al
mov al, [op9]
imul [pr]
mov [um5], al
mov al, [op1]
imul [op6]
mov [pr], al
mov al, [op8]
imul [pr]
mov [um6], al
 
mov al,[um1]
add al,[um2]
 
mov [pr],al
mov al, [um3]
add al,[pr]
 
sub al, [um4]
 
sub al, [um5]
sub al, [um6]
mov [res], al
 
mov dl,0
 
mov dl,30
mov al, [res]
 
add al, dl
mov [res], al
;mov ax,[res]
mov ah,9h
lea dx,[res]
;printf([res])
int 21h
;-------------------------------------------------
mov ah,10h
int 16h
 ; это по моему лишнее))
f1:
mov dx, 4c00h
int 21h
; 
exit: mov ax,4c00h
int 21h
end start
1
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32
10.06.2010, 20:54  [ТС]
я тебя обажаю челловечище!!!!!!!!

теперь осталось с выводом разобраться
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.06.2010, 20:58
я дал ссылку - там подробнейше все расписано про вывод
0
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32
10.06.2010, 21:02  [ТС]
где ссылка?

Добавлено через 29 секунд
ааа)) не разглядела

Добавлено через 2 минуты
все подробно и простенько там описано))) есть желающие,которые мне мозг подарят?? ли те,которые мне вывод организуют?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.06.2010, 21:25
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
ideal
model small
stack 256
 
dataseg
op1 db 1
op2 db 1
op3 db 1
op4 db 1
op5 db 1
op6 db 1
op7 db 1
op8 db 1
op9 db 1
pr  db 0
um1 db 0
um2 db 0
um3 db 0
um4 db 0
um5 db 0
um6 db 0
res db 0
;mes7   db      0dh,0ah,'EXIT$'
 
codeseg
start: 
mov ax,@data
mov ds,ax
 
 
 
mov ah, 10h
int 16h
cmp al,'q'
;jne f1
; проверка esc
cmp ah, 27
jz _exit
jmp _begin
_exit:
jmp exit
_begin:
mov ax,0003h
int 10h
;---------------------Result---------------------
mov ax,0
mov al,[op1]
imul [op5]
mov [pr], al
mov al,[op9]
imul [pr]
mov [um1],al
mov al, [op2]
imul [op6]
mov [pr], al
mov al, [op7]
imul [pr]
mov [um2],al
mov al,[op3]
imul [op4]
mov [pr], al
mov al, [op8]
imul [pr]
mov [um3], al
mov al, [op3]
imul [op5]
mov [pr], al
mov al, [op7]
imul [pr]
mov [um4],al
mov al, [op2]
imul [op4]
mov [pr], al
mov al, [op9]
imul [pr]
mov [um5], al
mov al, [op1]
imul [op6]
mov [pr], al
mov al, [op8]
imul [pr]
mov [um6], al
 
mov al,[um1]
add al,[um2]
 
mov [pr],al
mov al, [um3]
add al,[pr]
 
sub al, [um4]
 
sub al, [um5]
sub al, [um6]
mov [res], al
 
cbw
 
; вот это надо было скопировать и вставить)
xor     cx, cx
        mov     bx, 10 ; основание сс. 10 для десятеричной и т.п.
oi2:
        xor     dx,dx
        div     bx
; Делим число на основание сс. В остатке получается последняя цифра.
; Сразу выводить её нельзя, поэтому сохраним её в стэке.
        push    dx
        inc     cx
; А с частным повторяем то же самое, отделяя от него очередную
; цифру справа, пока не останется ноль, что значит, что дальше
; слева только нули.
        test    ax, ax
        jnz     oi2
; Теперь приступим к выводу.
        mov     ah, 02h
oi3:
        pop     dx
 
        add     dl, '0'
        int     21h
; Повторим ровно столько раз, сколько цифр насчитали.
        loop    oi3
 
 
 
;-------------------------------------------------
mov ah,10h
int 16h
f1:
exit: mov ax,4c00h
int 21h
end start
в ответе получается 0?
0
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 32
12.06.2010, 18:29  [ТС]
Спасибо тебе огромное! Всё правильно работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.06.2010, 18:29
Помогаю со студенческими работами здесь

Выход по нажатию ESC
#include "stdafx.h" #include <iostream> #include <conio.h> float sum(); float razn(); float del(); float proizv(); float...

Выход из программы по нажатию Esc
подскажите как сделать чтобы по нажатию ESC выводился результат.затупил чутка int main(){ setlocale(LC_ALL, "RUS"); ...

Выход из программы по нажатию клавиши ESC
Здравствуйте! Программа, которая собирает данные и записывает в файл. Как сделать так, чтобы в любом месте можно было выйти из программы...

Выход из чата UDP по нажатию на ESC
Как реализовать выход из чата протоколом UDP в консоли, по нажатию клавиши? using System; using System.Diagnostics; using System.Net;...

Выход из программы по нажатию клавиши Esc
Здравствуйте. Есть программа c циклом. Используется Graph ABC. begin repeat .....сам код.... until ... end. И вот нужно...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru