Консультация № 123274
15.02.2008, 16:12
0.00 руб.
0 2 2
пожалуйсто помогите!ВОПРОС!!_работа с строчним оператором.сложить цифры в строку @str db "25".взять во внимание что код цифры 0 и символа "0" отличаются на 48

Обсуждение

Неизвестный
15.02.2008, 16:47
общий
это ответ
Здравствуйте, Richhabibi!

В приложении COM программа на MASM.

Приложение:
.286.model tiny ; Модель памяти, используемая для COM.code ; Начало сегмента кодаorg 100h ; Начальное значение счетчика - 100hstart:push sipush di; подготовка указателейlea si, des lea di, binmov cx, dessize@1: lodsb ; чтение символа and al, not 20h ; преобразование в число shl ax, 12 ; сохраняем в старшей части ah dec cx ; уменьшаем значение счётчика jz @1 lodsb ; чтение символа and al, not 20h ; преобразование в число or al, ah ; соединение цифр в число stosb ; сохранение результата loop @1 ; цикл jmp @3@2: mov al, ah ; сохранение результата stosb@3:pop dipop siret ; выходdes db ‘2554564‘dessize = 7bin db 4 dup (?)end start
давно
Старший Модератор
31795
6196
15.02.2008, 17:47
общий
это ответ
Здравствуйте, Richhabibi!

C помощью строчного оператора STOSB формируется строка и выводится функцией DOS.
Если будут вопросы обращайтесь в мини-форум.
Удачи!

Приложение:
;tasm prog ;tlink prog /t MASM;IDEAL or MASM MODEL tiny .186 CODESEG org 100h ; start: mov ax,dwNumber;загружаем число xor cx,cx;сбрасываем счетчик cld;для строковой команды инкремент mov bx,10;будем делить на 10 ;преобразовываем число в цифры isDiv10: xor dx,dx;сбрасываем div bx;делим на 10 push dx;запоминаем в стеке inc cx;увеличиваем счетчик or ax,ax;проверяем достигли ли 0 jnz isDiv10 ;настраиваемся на строку mov di,offset dbString; mov dx,di ;формируем строку isOut10: pop ax;извлекаем из стека or al,30h;преобразовываем в символ stosb;записываем в строку loop isOut10 ;записываем метку конца строки mov al,‘$‘ stosb ;вывод строки и выход mov ah,9 int 21h ret dwNumber dw 1204 dbString db 10 dup(?) ; end start
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа