Помогите написать программу. В институте задали, а про ассемблер ничего не рассказывают. Препод, которая задала прогу, сама его толком не знает, она только задания раздает, а препод который должен объяснять вообще на пары не ходит. Вот так вот мы и учимся, а сдавать все равно нужно...
Вот задание: Дан массив состоящий из букв и цифр. Подсчитать в нем колличество букв и цифр. При написании программы использовать модель памяти Small.
volvo
8.11.2008 22:54
Что ж вас, совсем ничему не учат? Вот основа программы, здесь не хватает только одной - единственной процедуры WriteDEC, которая получает через регистр AL байт, и печатает его десятичное представление (я ж не могу тебе программу предоставлять полностью, без усилий с твоей стороны, правда? Хотя бы процедуру напиши).
.model small .data
sLetters db 10, 13, 'Letters: ', '$' sDigits db 10, 13, 'Digits: ', '$'
Arr db 'h3llo 12345 w0rld ', '$' ArrLen = $ - Arr
bLetters db 0 bDigits db 0
.code
WriteDEC proc ; AL - байт для отображения ... WriteDEC endp
volvo, большое спсибо! Представь себе нас совсем ни чему не учат. Я живу в маленьком городе и учусь в филиале института, где нет практически ни одного нормального преподавателя, который хоть что-то бы нормально объяснял. Сравниват мне есть с чем, т.к. по началу я учился в Москве и знаю как должны обучать... Сорри за оффтоп... Сейчас буду разбираться и писать процедуру. Как мне кажется, в этой процедуре нужно использовать команду LODS?
Venom
23.12.2008 21:13
Помогите еще немного с этой задачей. Я программу написал, но преподаватель сказал, что этот код можно оптимизировать, а как это сделать я незнаю. Оптимизированный код нужно уже завтра сдавать, помогите кто может
ToDecimalLoop01: cmp AL, 0 je ToDecimal01 mov AH, 0 div BL add AH, '0' mov DX, 0 mov DL, AH push DX jmp ToDecimalLoop01 ToDecimal01: pop AX cmp AL, -1 je ToDecimalQuit mov [DI], AL inc DI jmp ToDecimal01 ToDecimalQuit: mov DS:[DI], byte ptr '$'
pop DI pop DX ret ToDecimal endp end start end
volvo
24.12.2008 17:03
Цитата
преподаватель сказал, что этот код можно оптимизировать
То вам ничего не объясняют, теперь "код можно оптимизировать"... Что тут оптимизировать? Основная часть - 4 сравнения, 5 Jump-ов и 2 операции Inc... Даже если создать строки букв и цифр, и сделать поиск символа в строке через SCASB - выйдет больше, потому как надо будет еще сохранять/восстанавливать CX, чтобы не портился в основном цикле.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.