недопустимая инструкция!

Тема в разделе "WASM.ASSEMBLER", создана пользователем __EXP__, 4 апр 2010.

  1. __EXP__

    __EXP__ New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2010
    Сообщения:
    12
    Написал 2 программы вроде все верно но при выполнении вылетает
    [​IMG]
    Суть первой программы считать с клавиатуры и вывести имя на экран
    Код (Text):
    1. d_seg segment 'data'
    2.  
    3. str0  db ' ',10,13,'$'
    4. str1  db 'Vipolnil ',10,13,'!!!_START_!!!',10,13,'$'
    5. str2  db 'Input name',10,13,'$'
    6. str3  db   '!!!_FINISH_!!!',10,13,'$'
    7. myname db 10 dup (0)
    8. d_seg ends
    9.  
    10. c_seg segment 'code'
    11. assume ds:d_seg , cs:c_seg
    12. START:
    13. mov ax,d_seg
    14. mov ds,ax
    15. mov ah,9h
    16. lea dx,str1
    17. int 21h
    18.  
    19.     mov ah, 9h
    20.     lea dx, str2
    21.     int 21h
    22.  
    23.     mov ah,3fh
    24.     mov bx,0
    25.     mov cx,25
    26.     mov dx, offset myname
    27.     int 21h
    28. c_seg ends
    29. end START
    Суть второй через промежуток времени очистить экран
    Код (Text):
    1. d_seg segment 'data'
    2.  
    3. str0  db ' ',10,13,'$'
    4. str1  db 'Vipolnil 3',10,13,'!!!_START_!!!',10,13,'$'
    5.  
    6. d_seg ends
    7.  
    8. c_seg segment 'code'
    9. assume ds:d_seg , cs:c_seg
    10. ;--------------------процедура очистки экрана----------------------------
    11. screen_clear proc
    12.  MOV AX,0600h      ;Запрос на очистку экрана
    13.  MOV  BH,10h   ;Цвет экрана/фон символа (00000000)
    14.  MOV  CX,0000   ;Верхняя левая позиция
    15.  MOV  DX,184FH     ;Нижняя правая позиция
    16.  int 10h
    17. ret
    18. screen_clear endp
    19.  
    20. START:
    21. mov ax,d_seg
    22. mov ds,ax
    23. mov ah,9h
    24. lea dx,str1
    25. int 21h
    26.  
    27. mov si, 18*5; число тиков в 5ти секундах
    28. mov ah, 0
    29. int 1ah
    30.  
    31. mov bx, dx; готовит будущее состояние счётчика
    32. add bx, si
    33.  
    34. delay_loop:
    35.  
    36. int 1ah
    37. cmp dx, bx; сравнение будущего состояния счётчика с текущим
    38. jb delay_loop
    39.  
    40. call screen_clear
    41.  
    42. c_seg ends
    43. end START
     
  2. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    __EXP__
    А завершать работу кто будет? Хотя бы RET в конце допиши...
     
  3. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Хотя по-научному надо INT 20h или XOR AX, AX / INT 21h