На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
  
> Двоичное представление строки символов , прошу помочь с лабой, пожалуйста!
    Новичок в Ассемблере и не могу дописать прогу! Заранее большое спасибо) Необходимо ввести с терминала строку символов и вывести на экран ее двоичное представление! Свой набросок скинул ниже.
    ExpandedWrap disabled
      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
    Сообщение отредактировано: Qraizer -
      M
      RexColtPower, вы читали правила вверху страницы?
      Оформите своё сообщение как положено (включая заголовок, если вам доступно его редактирование – вопрос пишется в сообщении, а не в описании).
      И спрашивайте конкретно: что именно не получается? Или вы хотите готовое решение на блюдичке?
        Скрытый текст
        Jin X, ты же модер с правами правки.
        Если не сложно - поправь за бедного студеня его мольбу о помощи, плс :yes:

        RexColtPower, ассемблеры, равно как операционные системы - бывают разные.
        Ты определись, тебе критично что-то из перечисленного?
          JoeUser, если я поправлю, какова вероятность, что в следующий раз он сделает всё как надо? Чтобы научиться чему-то, нужно сделать это самому. Если я и поправлю, то позже.

          Чел, видимо, хочет, чтобы за него сделали лабу. Так не годится. Если где-то затык, тогда нужно задать конкретный вопрос: что именно не получается? Мы подскажем, направим.
            Загвоздка заключается в том, что я не понимаю какой алгоритм нужно вставить в два цикла (ckl1 и ckl2) для преобразования строки символов в двоичное представление. Циклы ckl1 и ckl2 предназначены для обработки 0 и 1. Может быть подскажите какие команды я должен использовать для решения своей проблемы ? Структура программы представлена на языке Ассемблер для ПЭВМ типа IBM PC. И да прошу прощение за несоблюдение правил форума.
              Цитата Jin X @
              (...если вам доступно его редактирование ...)
              Недоступно. Поправил.
              Цитата RexColtPower @
              И да прошу прощение за несоблюдение правил форума.
              Уже. Боюсь, во второй раз Jin X что-нибудь да выпишет.С другой стороны, не прочитав предварительно Правила, Вы, уважаемый, фактически продемонстрировали Ваши деловые и профессиональные качества. Вы уверены, что Вам хватит самодисциплины дальше по жизни, неважно, чем Вы планируете заниматься и чем зарабатывать?
                Преобразование одного байта в бин-вид - как-то так
                ExpandedWrap disabled
                  mov ah, nextbyte
                  mov cx,8
                  loop:
                  xor al,al
                  shl ah, 1
                  adc al, '0'
                  ; вывод байта на экран - можно вместо этого класть в буфер, чтобы потом вывести
                  tty al
                  rep loop
                  Цитата Akina @

                  Спасибо!
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0294 ]   [ 15 queries used ]   [ Generated: 19.03.24, 07:16 GMT ]