Процессор ntvdm обнаружил недопустимую инструкцию - Assembler

Узнай цену своей работы

Формулировка задачи:

Эта программа имитирует звук сирены. После первого цикла выдает вот такую ошибку " Процессор ntvdm обнаружил недопустимую инструкцию". В чем может быть проблема? Прошу ваши варианты, желательно с кодом в комментарии.
.386
 
.model small
    stack 100h
    delay macro time
         local  ext, iter
         push   cx
         mov    cx, time
    ext:
         push   cx
         mov    cx, 5000
    iter:
        loop    iter
        pop     cx
        loop    ext
        pop     cx
    endm
    .data
    tonelow dw  2651
    cnt     db  0
    temp    dw  ?
    .code
    main:
        mov ax  ,@data
        mov ds  ,ax
        mov ax  ,0
    
    go:
        mov al, 0B6h
        out 43h, al
        in  al, 61h
    or  al, 3
        out 61h, al
        mov cx, 2083
    musicup:
    
        mov ax, tonelow
        out 42h, al
        xchg al, ah
        out 42h, al
        add tonelow, 1
        delay 1
        mov dx, tonelow
        mov temp, dx
        loop musicup
        mov cx, 2083
    musicdown:
        mov ax, temp
        out 42h, al
        mov al, ah
        out 42h, al
        sub temp, 1
        delay 1
        loop musicdown
    nosound:
        in al, 61h
        and al, 0FCh
        out 61h, al
        mov dx, 2651
        mov tonelow, dx
        inc cnt
        
        cmp cnt, 5
        jne go
    exit:
        mov ax, 4c00h
        int 21h
    end main

Решение задачи: «Процессор ntvdm обнаружил недопустимую инструкцию - Assembler»

textual
Листинг программы
.386
 
.model small

Объяснение кода листинга программы

  1. Указывает модель памяти компьютера - .model small
  2. Устанавливает сегмент данных на 386 - .386

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5