|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.06.2016, 15:34 | #1 |
Новичок
Джуниор
Регистрация: 22.06.2016
Сообщений: 1
|
Не получается разобраться в экзаменационном задании. Cрочно!
Привет всем! Не удается понять смысл работы программы. Т.е. понятно, что программа нужна для вывода символов на определенно настроенный экран, но вот логику работы программы уловить не получается. Сам код:
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 use16 org 100h jmp start LABEL BUFFER BYTE LONG db ? ;Текущая длина строки BASELONG DB 99 DUP('') ;Длина буффера MAXLONG DB 99 ;Максимальная длина буффера prompt db 'TEXT?','$' start: call Q10CLR ;Настройка параметров экрана a20: mov dx,0000 call Q20CURS ;Установка курсора call B10PRMP call D10INPT ;Непосредственно ввод call Q10CLR ; cmp [LONG],00 je a30 call E10CODE call F10CENT MOV SI,BASELONG MOV AH,0EH MOV AL,[SI] MOV BH,00 MOV CX,99 INT 16H a30: int 20h B10PRMP: mov ah,40h ;Видеобуффер mov dx,prompt ;Загружаем int 21h ret D10INPT: MOV AH,0AH ;Ввод строки MOV DX,BASELONG ;Загрузка буффера клавиатуры INT 21H RET E10CODE: MOV BH,00 MOV BL,[LONG] MOV [BASELONG+BX],'$' RET F10CENT: MOV DL,[LONG] SHR DL,1 NEG DL ADD DL,40 MOV DH,12 MOV AH,09H MOV DX,BASELONG INT 21H RET Q10CLR: MOV AX,0600H MOV BH,100 MOV CX,0000 MOV DX,184FH INT 10H RET Q20CURS: MOV AH,02 MOV BH,100 INT 10H RET Прошу помощи конкретно в описании работы программы, и ее комментировании. Также привожу текст задания: "Написать программу ввода строки с консоли. Перед вызовом, аргумент функции Buffer должен указывать на массив, размер которого должен быть достаточным для ввода строки, заверш. символом "Enter" и двух байтов. Первый байт указывает на максимальный размер строки, второй реальный размер строки. Сама строка должна завершаться символами NL - новая строка. LF - перевод строки и нулем" |
22.06.2016, 16:30 | #2 | |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Цитата:
|
|
05.09.2016, 06:02 | #3 |
Форумчанин
Регистрация: 05.09.2016
Сообщений: 134
|
В книге Майко этот пример вроде был.
Немного о GoAsm.
|
05.09.2016, 07:25 | #4 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Такие метки вроде Абель ставил, а ТС просто переделал его пример под FASM
Нашедшего выход - затаптывают первым..
|
05.09.2016, 11:14 | #5 |
Участник клуба
Регистрация: 20.02.2015
Сообщений: 1,226
|
Ну если программа работает, то что именно не понятно, вроде же всё указано? В отладчике можешь посмотреть работу программы. И вообще, какие тебе нужны комментарии, MOV CX,99, типа в регистр cx заносим 99, там же комментарии на ключевых местах имеются. Советую прочитать азы ассемблера и о использованных тут командах, знаешь, займет у тебя это всё от силы 4 часа, дерзай!
|
05.09.2016, 11:39 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
некропост. уже почти три месяца прошло.
изначальный пост от 22 июня. Автор темы уже давно про ваш ассемблер и думать забыл, а вы всё обсуждаете... |
05.09.2016, 12:28 | #7 |
Форумчанин
Регистрация: 05.09.2016
Сообщений: 134
|
Преподаватель правильно всё написал. Вместо пустых строк вставьте свой код. Там ещё нужно много кода добавлять. Поучите у Г.В.Майко строки, определите начало строки в регисте DS вот в общем и всё. И в задании всё то-же.
Немного о GoAsm.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не получается разобраться в коде | stck | Общие вопросы C/C++ | 5 | 22.12.2011 17:24 |
Не получается разобраться с xlat (assembler) | sunny_alice | Помощь студентам | 9 | 12.05.2011 00:05 |
Разобраться в задании по созданию ПО для работы с БД на Borlande | DaysOfGrace | Помощь студентам | 0 | 09.03.2011 17:02 |
Пытаюсь разобраться в задании | fs444 | Microsoft Office Excel | 12 | 12.01.2010 12:57 |