Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Assembler > Двоичное представление строки символов


Автор: RexColtPower 20.10.20, 13:54
Новичок в Ассемблере и не могу дописать прогу! Заранее большое спасибо) Необходимо ввести с терминала строку символов и вывести на экран ее двоичное представление! Свой набросок скинул ниже.
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    TITLE  TestProg
     
    STACKSG SEGMENT PARA STACK 'STACK'
        DB 64 DUP(?)
    STACKSG ENDS
     
    DATASG SEGMENT PARA 'DATA'
          STR DB 50,52 DUP('$')
          hi1 db "Enter string of symbols: ", "$"
          hi2 db 0dh, 0ah, "Bynary: ", "$"
    DATASG ENDS
     
    CODESG SEGMENT PARA 'CODE'
          ASSUME CS:CODESG,DS:DATASG,SS:STACKSG
          
          ENTRY PROC FAR
    ;-----------------------------------------Стандартная процедура----------------------------------------
              PUSH DS  
              SUB AX,AX    
              PUSH AX      
              MOV AX,DATASG
              MOV DS,AX    
    ;------------------------------------------Вывод строки hi1-------------------------------------------------
              MOV AH,09
          LEA DX,hi1
          INT 21H
    ;-------------------------------------Приглашение пользователя на ввод строки-------------------------------
          MOV AH,10
          LEA DX,STR
          INT 21H
     
          MOV AH, 01h ;забираем символ
              INT 21h
     
              XOR BX, BX
    ;-----------------------------------------Обработка символов в цикле----------------------------------------
    ckl1:
          
     
    ckl2:
              
        
    ;----------------------------------------------Вывод результата---------------------------------------------
    print:
          MOV AH,09
          LEA DX,hi2
          INT 21H
     
          LEA DX, bin
              INT 21H  
          RET                    
         ENTRY ENDP
    CODESG ENDS
    END   ENTRY

Автор: Jin X 20.10.20, 17:40
M
RexColtPower, вы читали правила вверху страницы?
Оформите своё сообщение как положено (включая заголовок, если вам доступно его редактирование – вопрос пишется в сообщении, а не в описании).
И спрашивайте конкретно: что именно не получается? Или вы хотите готовое решение на блюдичке?

Автор: JoeUser 21.10.20, 02:56
Скрытый текст
Jin X, ты же модер с правами правки.
Если не сложно - поправь за бедного студеня его мольбу о помощи, плс :yes:

RexColtPower, ассемблеры, равно как операционные системы - бывают разные.
Ты определись, тебе критично что-то из перечисленного?

Автор: Jin X 21.10.20, 09:51
JoeUser, если я поправлю, какова вероятность, что в следующий раз он сделает всё как надо? Чтобы научиться чему-то, нужно сделать это самому. Если я и поправлю, то позже.

Чел, видимо, хочет, чтобы за него сделали лабу. Так не годится. Если где-то затык, тогда нужно задать конкретный вопрос: что именно не получается? Мы подскажем, направим.

Автор: RexColtPower 21.10.20, 17:22
Загвоздка заключается в том, что я не понимаю какой алгоритм нужно вставить в два цикла (ckl1 и ckl2) для преобразования строки символов в двоичное представление. Циклы ckl1 и ckl2 предназначены для обработки 0 и 1. Может быть подскажите какие команды я должен использовать для решения своей проблемы ? Структура программы представлена на языке Ассемблер для ПЭВМ типа IBM PC. И да прошу прощение за несоблюдение правил форума.

Автор: Qraizer 21.10.20, 18:30
Цитата Jin X @
(...если вам доступно его редактирование ...)
Недоступно. Поправил.
Цитата RexColtPower @
И да прошу прощение за несоблюдение правил форума.
Уже. Боюсь, во второй раз Jin X что-нибудь да выпишет.С другой стороны, не прочитав предварительно Правила, Вы, уважаемый, фактически продемонстрировали Ваши деловые и профессиональные качества. Вы уверены, что Вам хватит самодисциплины дальше по жизни, неважно, чем Вы планируете заниматься и чем зарабатывать?

Автор: Akina 21.10.20, 19:54
Преобразование одного байта в бин-вид - как-то так
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    mov ah, nextbyte
    mov cx,8
    loop:
    xor al,al
    shl ah, 1
    adc al, '0'
    ; вывод байта на экран - можно вместо этого класть в буфер, чтобы потом вывести
    tty al
    rep loop

Автор: RexColtPower 21.10.20, 20:10
Цитата Akina @

Спасибо!

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)