Помогите с задачкой (Цикл)
Модератор: Andy
Задача: Поле UNPAK содержит 01040705 в распакованном десятичном формате. Нужен цикл, который преобразует это содержимое в ASCII - формат, т.е. 31343735.
- Oscar
- Сообщения: 963
- Зарегистрирован: 29 май 2004, 13:44
- Откуда: Мюнхен (рожден в Киеве)
- Контактная информация:
Svet_lana, в соседней теме есть макрос для вывода десятичного числа.
Что такое "распакованный десятичный формат" я не знаю,
но по виду похоже, что там просто нолики подописывали.
Так что в макросе нужно просто проходить по всем чётным (начиная слева) цифрам числа UNPACK.
Справишься?
Что такое "распакованный десятичный формат" я не знаю,
но по виду похоже, что там просто нолики подописывали.
Так что в макросе нужно просто проходить по всем чётным (начиная слева) цифрам числа UNPACK.
Справишься?
Цикл так цикл. Иначе если разрешен 386+ проц можно просто:
А иначе:
Код: Выделить всё
mov eax, UNPAK
add eax, 30303030h
Код: Выделить всё
CSeg segment byte public 'CODE'
assume cs:CSeg, ds:CSeg
org 100h
_start:
mov bx, 4
mov di, offset UNPAK
dec di
ConvertNumb:
mov al, [di + bx]
add al, 30h
mov [di + bx], al
dec bx
jnz ConvertNumb
mov ah,4ch
int 21h
UNPAK dd 01040705h
CSeg ends
end _start
*provided AS IS
Спасибо!!! 
