Переписка сектора памяти - Assembler

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

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

Ребят, помогите, пжлст! Нужно написать программу (лабораторная работа), а как обычно бывает в нашей стране, препода не было пол семестра и всё делается в последний момент. Вообщем то полный нуб, ассемблером владею на ноль. Нужно написать прогу, которая использовала бы функции переписки сектора памяти, ибо задание "Выполните отладку процедур, предназначенных для переписки сектора." Можно пожалуйста по подробнее объяснить в чем суть, как это написать и если можно с кодом и пару скринов...

Решение задачи: «Переписка сектора памяти»

textual
Листинг программы
  1. ; Disp_sec.asm
  2. org 100h
  3. jmp Disp_sector
  4. Sector: times 16 db 10h
  5.        times 16 db 11h
  6.        times 16 db 12h
  7.        times 16 db 13h
  8.        times 16 db 14h
  9.        times 16 db 15h
  10.        times 16 db 16h
  11.        times 16 db 17h
  12.        times 16 db 18h
  13.        times 16 db 19h
  14.        times 16 db 1Ah
  15.        times 16 db 1Bh
  16.        times 16 db 1Ch
  17.        times 16 db 1Dh
  18.        times 16 db 1Eh
  19.        times 16 db 1Fh
  20. Disp_sector:
  21.         xor dx,dx
  22.         mov cx,16
  23. .M:     call Disp_line
  24.         call Send_crlf
  25.         add dx,16
  26.        lopp .M
  27.         int 20h
  28. ;
  29. Disp_line:
  30.         push bx
  31.         push cx
  32.         push dx
  33.         mov bx,sx
  34.         mov cx,16
  35. .M:     mov dl,[Sectoe+bx]
  36.         call Write_byte_hex
  37.         mov dl,''
  38.         call Write_char
  39.         int bx
  40.         loop .M
  41.         pop dx
  42.         pop cx
  43.         pop bx
  44.         ret
  45.         %include 'Video_io.asm'
  46.         %include 'Cursor.asm'

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

Список переменных и их значений:

  1. sx - байт, содержащий номер сектора (10h - 1Fh)
  2. bx, cx, dx - регистры общего назначения, используемые для работы с адресами и данными
  3. Sectoe - директория, содержащая сектор, который необходимо отобразить (значение зависит от номера сектора)
  4. Video_io.asm, Cursor.asm - заголовочные файлы, включающие код для работы с видеопамятью и курсором Код выполняет следующие действия:
  5. Задается начальный адрес сектора (100h) и выполняется переход на начало сектора (Disp_sector).
  6. В цикле 16 раз выводится по одному байту из сектора, начиная с первого (Disp_line).
  7. Каждый байт выводится в шестнадцатеричной системе счисления (Write_byte_hex).
  8. После вывода каждого байта выводится символ возврата каретки (CR), который перемещает курсор на начало следующей строки (Send_crlf).
  9. После вывода всех байтов сектора выполняется переход на начало следующего сектора (int 20h).

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы