Вывод регистра на экран.

Тема в разделе "WASM.BEGINNERS", создана пользователем Compare, 15 дек 2005.

  1. Compare

    Compare New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2005
    Сообщения:
    3
    Адрес:
    Russia
    Здрасьте, уважаемые!

    Короче, у меня проблема по ассемблеру. Даже две.



    1) Надо сделать так в COM-файле, чтобы вывести содержимое регистра (сx, например) на экран.



    2) Надо сделать так, чтобы при запуске COM программы, выводилось приглашение ввести какое-то значение и после Enter оно заносилось в регистр.



    Помогите. От этого зависит судьба, так сказать...
     
  2. Compare

    Compare New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2005
    Сообщения:
    3
    Адрес:
    Russia
    В общем, это нужно для реализации алгоритма Евклида.

    Само тело готово. Не могу реализовать ввод двух чисел, ну и вывод содержимого регистра на экран.
     
  3. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Вывод сразу всех регистров :derisive:
    Код (Text):
    1. ;@echo off
    2. ;goto make
    3.  
    4. macro hex2ascii
    5.  {
    6.    cmp  al,10
    7.    sbb  al,69h
    8.    das
    9.  }
    10.  
    11. org 100h
    12. use16
    13.  
    14.   mov [temp_reg], sp
    15.   push ax
    16.   push bx
    17.   push dx
    18.   push cx
    19.   push si
    20.   push di
    21.   push bp
    22.   mov si, (_sp - _ax)
    23.   mov cx, 8
    24.   jmp @do
    25. @@:
    26.   pop [temp_reg]
    27. @do:
    28.   call convert_proc
    29.   mov WORD [_ax+si], ax
    30.   mov WORD [_ax+si+2], dx
    31.   sub si, (_bx - _ax)
    32.   loop @B
    33.  
    34. ; вывод строки
    35.   mov ah, 9
    36.   mov dx, string
    37.   int 21h
    38.   ret
    39.  
    40. convert_proc:
    41.   mov al, BYTE [temp_reg]
    42.   call al2ascii
    43.   mov dx, ax
    44.   mov al, BYTE [temp_reg+1]
    45.   call al2ascii
    46.   ret
    47.  
    48. al2ascii:
    49.   aam 16
    50.   hex2ascii
    51.   xchg al, ah
    52.   hex2ascii
    53.   ret
    54.  
    55. temp_reg  dw  ?
    56.  
    57. string  db 'ax='
    58.    _ax  rb 4
    59.         db 13,10
    60.         db 'bx='
    61.    _bx  rb 4
    62.         db 13,10
    63.         db 'dx='
    64.    _dx  rb 4
    65.         db 13,10
    66.         db 'cx='
    67.    _cx  rb 4
    68.         db 13,10
    69.         db 'si='
    70.    _si  rb 4
    71.         db 13,10
    72.         db 'di='
    73.    _di  rb 4
    74.         db 13,10
    75.         db 'bp='
    76.    _bp  rb 4
    77.         db 13,10
    78.         db 'sp='
    79.    _sp  rb 4
    80.         db '$'
    81. ;:make
    82. ;SET PROJECTNAME=first_com4
    83. ;if exist %PROJECTNAME%.com del %PROJECTNAME%.com
    84. ;C:\FasmC\fasm.exe %PROJECTNAME%.bat %PROJECTNAME%.com
    85. ;pause
    86. ;cls
    87.  
    88.  
     
  4. Compare

    Compare New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2005
    Сообщения:
    3
    Адрес:
    Russia
    Во завернул...

    Спасибо.