Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Программирование на CompModel(типа ассемблер)


Автор: TheRomul 31.5.2011, 23:46
Селективный ввод символов с клавиатуры.Используемые внешнии устройства это клавиатура и дисплей.
Все русские буквы встречающиеся в строке ввода -в верхнию часть экрана дисплея(строки 1-4),все цифры-в нижнию часть экрана (строки 5-8),остальные символы не ввыводить.

Добавлено через 3 минуты и 57 секунд

была написана такая программа
;Все русские буквы встречающиеся в строке ввода -в верхнию часть экрана дисплея(строки 1-4),
;все цифры-в нижнию часть экрана (строки 5-8),остальные символы не ввыводить.
data segment
table_rus db 20h dup (0),' !"#$%&',0edh,'()*+',0a1h,'-',0eeh,'/','0123456789',':',0a6h,'<=>?@'
db 'abcdefghijklmnopqrstuvwxyz',0e5h,'\',0eah,'^_"'
db 0e4h,0a8h,0e1h,0a2h,0e3h,0a0h,0afh,0e0h,0e8h,0aeh,0abh,0a4h,0ech,0e2h,0e9h,0a7h,
0a9h,0aah,0ebh,0a5h,0a3h,0ach,0e6h,0e7h,0adh,0efh,'{|}~',0
db 80h dup (0)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov ax,3
int 10h

xor si,si
mov di,160*5
mm1:
mov ah,10h
int 16h

mov bx,offset table_rus
xlat

;фильтрация для цифр
cmp al,30h
jl mm2
cmp al,39h
ja mm2
mov byte ptr es:[di],al
inc di
inc di
jmp next
mm2:
;фильтрация для русских букв
cmp al,0a0h
jna mm3
mov byte ptr es:[si],al
inc si
inc si
mm3:

next:
cmp ah,1 ;выход ч/з [ESC]
jne mm1

mov ah,4ch ;выход из программы
int 21h
code ends
end start




Но она выдает ошибку: mov byte ptr es:[si],al
а вот ошибка..Компиляция...
Стр. № 39 : Метка не уникальна.
Обнаружены ошибки..

Автор: Настасия 4.12.2011, 13:42
Ребят, всем привет)) У меня вопрос - есть пример (a(a^3 - c))/2d - двойное слово. Надо использоваеть регистры EAX EBX для каждого сомножителя. Как это реализовать?))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)