Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
15 / 14 / 4
Регистрация: 22.05.2013
Сообщений: 503
1

Побуквенный вывод слова через цикл + ожидания нажатия клавиши (после нажатия очистка и установка курсора на )

23.11.2014, 01:25. Просмотров 1439. Ответов 5
Метки нет (Все метки)

строку) Masm32 (com -программа)

вообщем столкнулся с проблемой.
к примеру ввожу ' LSD49 $'
выводится через цикл loop (в ECX - 4) = LSD49 LSD49 LSD49 LSD49, а нужно по буквенно тоесть "L" "S" "D" "4" "9" ! с 2 частью более менее разобрался. есть код, а вот как их совместить?

очень надеюсь на вашу помошь

ниже 2 кода:

№1 код

1
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
.386
.model tiny
 
.data 
titlex db ' Igor$ '
 
.code
ORG 100h 
 
start :
mov ECX, 4
e1:
LEA EBX, offset titlex
;str1 DB ' Igor$'
 
;mov EDX, offset str1
MOV AH, 9 
INT 21h
 
loop e1
 
RET 
 
end start
2 (пробовал со смещением - бред получился!)
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.386
.model tiny
 
.data 
 
.code
ORG 100h 
 
start :
mov ECX, 4
e1:
str1 DB ' Igor$'
 
mov EDX, offset [str1+2]
MOV AH, 9 
INT 21h
 
loop e1
 
RET 
 
end start
№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
 .286
  .model tiny
  .code
  start:
  org 100h
MOV  AH,00     ;Выполнить ввод с клавиатуры
INT  16H       ;
CMP  AL,00     ;Функциональная клавиша?
JNE  finish    ;  нет -- выйти
CMP  AH,53H    ;Скэн-код для клавиши DEL?
JNE  finish     ;  нет -- выйти
MOV  AX,0600H  ;Прокрутить на одну строку вверх
MOV  BH,07     ;Атрибут:  нормальный, черно-белый
MOV  CX,0000   ;Координаты от 00,00
MOV  DX,184FH  ;  до 24,79 (полный экран)
INT  10H       ;Вызвать BIOS
MOV  AH,02     ;
MOV  BH,00     ;Установить курсор
Mov Dl,00
MOV  DH,24     ;  по координатам 0,0
INT  10H       ;Вызвать BIOS
mov ah,1
  int 21h
  cmp al,0Dh
  jne start
  mov ax,4C00h
  int 21h
  finish:
  ret
  end start
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2014, 01:25
Ответы с готовыми решениями:

Написать макросы: установки курсора, записи символа и атрибута, ожидания нажатия клавиши
Напишите макросы и оформите их в виде библиотеки: • macro cur – установка курсора • macro print -...

Вывод текста на экран во время ожидания нажатия клавиши.
Языс C, компилятор Borland C++ 3.1 for DOS. Прошу помочь и ответить на мой вопрос. Я пишу игру,...

Побуквенный вывод слова через цикл Loop (Masm32) DOS
вообщем столкнулся с проблемой. к примеру ввожу ' LSD49 $' выводится через цикл loop (в ECX - 4)...

После нажатия клавиши Enter или нажатия на Button
Помогите пожалуйста.:-[ Задача: После нажатия клавиши Enter или нажатия на Button поле курсора...

5
15 / 14 / 4
Регистрация: 22.05.2013
Сообщений: 503
26.11.2014, 01:27  [ТС] 2
Кто-то с циклом поможет?
0
Ушел с форума
Автор FAQ
13992 / 7004 / 815
Регистрация: 11.11.2010
Сообщений: 12,599
26.11.2014, 04:38 3
Лучший ответ Сообщение было отмечено SENDEJER как решение

Решение

SENDEJER,
посмотри закрепленную тему https://www.cyberforum.ru/asse... 69461.html сообщения 3, 10, 13, 14 - посимвольный вывод надписи на экран
1
15 / 14 / 4
Регистрация: 22.05.2013
Сообщений: 503
26.11.2014, 09:46  [ТС] 4
Спасибо! сейчас попробую)

Добавлено через 1 час 5 минут
Цитата Сообщение от Mikl___ Посмотреть сообщение
SENDEJER,
посмотри закрепленную тему Написать программу, выводящую строку "Hello World" на экран сообщения 3, 10, 13, 14 - посимвольный вывод надписи на экран
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
; masm dos com #
.286
.model tiny
.code
org 100h
start:  mov si,offset string
    mov cx,N
    mov ah,2
@@: lodsb
    mov dl,al
    int 21h
    loop @b
    retn
string db 'Hello, world!'
N = $ - string
end start
в этом коде получается, что 'Hello, world!' - выводиться по буквенно?
0
Ушел с форума
Автор FAQ
13992 / 7004 / 815
Регистрация: 11.11.2010
Сообщений: 12,599
26.11.2014, 09:48 5
Да, я же тебе указал ЧТО посмотреть, функция 2 прерывания 21h - вывод символа на экран
0
15 / 14 / 4
Регистрация: 22.05.2013
Сообщений: 503
26.11.2014, 09:58  [ТС] 6
Большое спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2014, 09:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Макрос ожидания нажатия клавиши
Пишу на fasm'е систему макросов. Стал делать макрос ожидания нажатия клавиши без эха. Синтаксис...

Реализация ожидания нажатия клавиши в asm
Возможно кто-то сталкивался с данным вопросом ранее, Как реализовать проверку нажатия клавиши к...

Нужно найти функцию ожидания нажатия клавиши
Мне нужно, чтобы код выполнялся пока не нажата клавиша, а потом с номером нажатой клавиши...

Как сделать через оператор whilе так, чтобы цикл выполнялся до нажатия клавиши
Как сделать через оператор whilе так чтоб цыкл выполнялся до тех пор пока пользователь не нажмут У

Вывод на экран нескольких разных строк после нажатия рандомной клавиши
Как сделать так, чтобы каждая отдельная строка текста выводилась на экран после очередного нажатия...

Очистка экрана и остановка программы до нажатия любой клавиши
Помогите сделать так что бы в этой программе происходила очистка экрана и отстановка программы до...


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

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

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