Автор Тема: Вывод информации из коммандной строки на экран  (Прочитано 1175 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн wgenius

  • Коллежский регистратор
  • *
  • Сообщений: 3
  • Репутация: 0
Здраствуйте, изучаю ASM пробую работать с cmd хочу вывести ее на экран, делаю так:

  mov CL, ES:80h;
   cmp CL, 0 
   je no_cmd
   
   CLD;
   xor ch,ch
   mov DI, 81h;
   
   inc CX;
   
read_spaces:
mov counter, 00h;

mov AL, ' '
repe scasb

dec DI

mov DX,DI

read_bx:
    cmp CX, 0
    je read_cmd
    cmp ES:DI, ' '
    je read_cmd
   
    inc counter
    inc DI
loop read_bx

read_cmd:
cmp counter, 00h
je no_cmd

    mov BX, DX
    add BX, counter
    mov BYTE PTR [BX], '$'
   
    mov ah,9
    int 21h
   
    lea dx, pkey
    mov ah, 9
    int 21h        ; output string at ds:dx
   
    ; wait for any key....   
    mov ah, 1
    int 21h
   
    mov ax, 4c00h ; exit to operating system.
    int 21h

Но выводит какую то фигню... никак не пойму что не так...

Оффлайн Alexiski

  • Любитель давать советы
  • Надворный советник
  • *****
  • Сообщений: 307
  • Репутация: 15
  • Пол: Мужской
У меня выводит нормально.

Но не компилировалось, пока не поменял
   cmp ES:DI, ' '
на
   cmp byte ptr ES:[DI], ' '

Приведите полный код программы, может, ошибка где-то в ином месте?



Оффлайн wgenius

  • Коллежский регистратор
  • *
  • Сообщений: 3
  • Репутация: 0
Проблема была в эмуляторе... перебил под TASM и скомпилировал там нормально...