| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 для каждого сомножителя. Как это реализовать?)) |