Переделать готовый код с NASM в TASM под DosBox - Assembler

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

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

section .text
org 0x100
 
mov si,arr+1
mov bh,0
mov bl,2
mov cx,8
first:
    mov al,byte [si]
 
    cmp al,[arr]
    jle skip1
 
    cmp al,[arr+9]
    jge skip1
 
    mov ah,0x2
    mov dl,bl
    or dl,0x30
    int 0x21
 
    inc bl
    inc si
    dec cx
 
    jmp last
 
    skip1:
    inc bl
    inc si
loop first
 
last:
    jcxz empty
 
    mov al,byte [si]
 
    cmp al,[arr]
    jle skip2
 
    cmp al,[arr+9]
    jge skip2
 
    mov bh,bl
 
    skip2:
    inc bl
    inc si
loop last
 
cmp bh,0
jz exit
 
mov ah,0x2
mov dl,' '
int 0x21
 
mov ah,0x2
mov dl,bh
or dl,0x30
int 0x21
 
jmp exit
 
empty:
mov ah,0x2
mov dl,0x30
int 0x21
 
exit:
int 0x20
 
section .data
arr db 1,12,23,34,5,16,17,8,9,10

Решение задачи: «Переделать готовый код с NASM в TASM под DosBox»

textual
Листинг программы
.model tiny
 
.code
 
        org     100h
main    proc
 
 
start:
        ;программа
 
 
        int     20h
main    endp
 
        ;Данные
arr db 1,12,23,34,5,16,17,8,9,10
 
end     main

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

В этом коде выполняется следующие действия:

  1. Указывается модель памяти - tiny.
  2. Определяется точка входа в программу - start.
  3. Переменная arr инициализируется значениями 1, 12, 23, 34, 5, 16, 17, 8, 9, 10.
  4. Код в точке входа в программу - start, вызывает прерывание 20h.
  5. Прерывание 20h в DOS используется для вывода строки символов на консоль. В данном случае выводится информация об ошибке.
  6. Программа завершается.

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


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

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

14   голосов , оценка 3.929 из 5