Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ассемблер

34K
12 октября 2011 года
Dinar1623
57 / / 14.11.2010
Здравствуйте. Помогите плиз выполнить задание. Нужно написать прогу запрашивающую у оператора строку из pусских букв, а затем выводящую ее на экран, предварительно изменив заглавные буквы на строчные. Вот то что я сделал:
Цитата:
codesg segment para 'code'
assume cs:codesg, ds:codesg, ss:codesg, es:codesg
org 100h
begin:
call start
message db 'Введите строку: ', '$'
string label byte
symb db 19
real db ?
all db 20 dup (?),'$'

start proc near
mov ah, 00h
mov al, 03h
int 10h

mov dh, 12
mov dl, 02
mov bh, 00
mov ah, 02h
int 10h

mov ah, 09h
lea dx, message
int 21h

lea dx, string
mov ah, 0ah
int 21h

mov bl,real
mov bh,00
mov all[bx],'$'
lea dx, string+2
mov ah, 09h
int 21h
mov ah,4ch
int 21h
start endp
codesg ends
end begin


Если можно опишите пожалуйста свой код с комментариями.

34K
13 октября 2011 года
Dinar1623
57 / / 14.11.2010
Подскажите плиз, что нужно написать в коде, что бы русские слова выводились не как закорючки. И как в предложении находить заглавные буквы?
75K
13 октября 2011 года
zzzyyyxxx
10 / / 11.10.2011
ну чё ты паришся, тебе чё, hex-коды символов ни о чём не говорят, там заглавные отдельно от прописных выбери что надо и фильтруй с заменой, там делов то.

P.S.: Я бы чиркнул, но у мну ща 64бт семёра, на ней не прёт. если хочешь сгоняй на cyberforum, там людей шаряших в асме хватает, авось и помогут.
277
13 октября 2011 года
arrjj
1.7K / / 26.01.2011
Цитата: Dinar1623
Подскажите плиз, что нужно написать в коде, что бы русские слова выводились не как закорючки. И как в предложении находить заглавные буквы?



1) Пересохранить листинг в DOS-866 кодировке и скомпилировать (простой способ)
2)Проверяешь каждую букву, проверяешь её ASCII-код если он между 41h и 5Ah , прибавляешь к нему 20h , это для латинских, для кирилицы тоже самое, только проверяешь 2 диапазона - 80h-8Fh (+20h) и 90h-9Fh (+50h) буква Ё - отдельно

34K
14 октября 2011 года
Dinar1623
57 / / 14.11.2010
Может кто-то скинет исходник похожий на мое задание? Буду очень благодарен:D
Я пока сделал вот что:
Цитата:
stacksg segment para stack 'Stack'
dw 32 dup(?) ;
stacksg ends
;---------------------------------------------
datasg segment para 'Data'
datasg ends
;--------------------------------------------
codesg segment para 'Code'
begin:
puts macro string:REQ ; Функция вывода строки на экран
push dx ;
push ax ;
mov dx, offset string ;
mov ah, 09h ;
int 21h ;
mov dl, 0Ah ;
mov ah, 02h ;
int 21h ;
mov dl, 0Dh ;
mov ah, 02h ;
int 21h ;
pop ax ;
pop dx ;
endm ;

.model small ; Программа .EXE

.data
len equ 100 ; Здесь устанавливается длина строки
StringS db len+1 dup(?) ; Здесь будет моя строка
StringB db len+1 dup(?) ; Здесь будет моя маленькая строка
msgEnteredS db "Vvedennaa malenkaa stroka: ", '$' ; Интерфейс
msgEnteredB db "Vvedennaa bolsaa stroka: ", '$'
msgEnter db "Vvedite stroky: ", '$'

.stack 100h

.code

main:
mov ax, @data ; В DS заносим адрес сегмента данных
mov ds, ax ;

puts msgEnter ; Приглашение к вводу строки

xor si, si
mov cx, len

input: ; Цикл ввода (посимвольно)
mov ah, 01h
int 21h
cmp al, 0Dh ; Проверка: не нажат ли Enter?
je next
mov StringS[si], al ; Заносим ASCII в строкуМ
cmp al, 41h ; Проверка
jl nots
cmp al, 5Ah ;
jg nots
sub al, 20h ; Получаем ASCII маленькой буквы
mov StringB[si], al ; И заносим его в строкуБ
nots:
mov StringB[si], al ; Заносим ASCII в строкуБ без изменений
inc si
loop input

next:
mov StringS[si], '$' ; добавление символа конца в строку
mov StringB[si], '$' ; добавление символа конца в строку
mov dl, 0Ah ; Просто курсор переводим на новую строку
mov ah, 02h ;
int 21h ;
mov dl, 0Dh ;
mov ah, 02h ;
int 21h ;

puts msgEnteredS ; И всё выводим
puts StringS ;
puts msgEnteredB ;
puts StringB ;

mov ah, 4Ch ; Выход
int 21h ;

end main


Но при ассемблировании выводит ошибку.

316
14 октября 2011 года
Alm3n
889 / / 29.05.2009
Какую?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог