Вывод на экран из буффера

Тема в разделе "WASM.BEGINNERS", создана пользователем farter, 5 янв 2011.

  1. farter

    farter New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2011
    Сообщения:
    1
    Здравствуйте, господа!
    Сильно не бейте, только начал изучать Ассемблер (по разсылке Калашникова).
    Вопрос такой, почему при выводе из буфера данные идут задом на перёд?
    Код (Text):
    1. CSEG segment
    2. org 100h
    3.  
    4. Start:
    5.  
    6.        ; # Очистим экран
    7.         mov ax,3
    8.         int 10h
    9.  
    10.         mov dx,'AB'
    11.         mov bufik,dx
    12.        
    13.  
    14.     mov ah,9
    15.     mov dx,offset bufik
    16.     int 21h
    17.  
    18.  
    19.         ; # Esc
    20.  
    21.         mov ah,10h
    22.         int 16h
    23.         cmp al,1Bh
    24.         jz S_pressed
    25.         jmp Start
    26.  
    27.         S_pressed:
    28.         int 20h
    29.  
    30. bufik dw 2,'$'
    31.  
    32. CSEG ends
    33. end Start
    В bufik помещаю AB, а получаю ВА
    Как правильно выводить?
    желатильно на моём примере, так-как я "Зелёный"...
     
  2. Sasha7b9

    Sasha7b9 New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2010
    Сообщения:
    105
    Я так понял, запара в этой строке:
    Код (Text):
    1.     mov ah,9
    2.     mov dx,offset bufik
    3.     int 21h
    Если так, то так:
    mov dx,'AB'
    mov bufik,dx. После этих команд по адресу [bufik] будет находиться содержимое dl, т.е. 'B', а по адресу [bufik+1] - dh, т.е. 'A'.
    Теперь понятно?) А вообще, совет - с такими вопросами на форум лезть не нужно. Разберись, как байты в памяти располагаются, прямой-обратный порядок и так далее. Это основы как бы)

    Да, ещё совет ламера начинающему) Тебе нужно раздобыть отладчик и прогонять в нём по шагам программы. Если бы ты так сделал, то увидел бы в чём дело. Отладчик весьма облегчит процесс изучения.
     
  3. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    A couple of notes:

    You can write into memory immediate value: just mov word ptr bufik,'AB'

    Удачи :)