Перевести код из FASM в TASM - Assembler

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

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

Нужно переобразовать код из fasm в tasm
org *100h
jmp *start
*
fName * db *'*.*',0 * * * * * * *; маска для поиска файлов
newDTA *db *45 dup(0) * * * * * *; область DTA
newFn * db *13,10,16 dup(0) * * *; новое имя файла с CRLF для вывода
ext * * db *'cul' * * * * * * * *; новое расширение
noFile *db *13,10,'Rename OK! Press key to exit...$'
*
start:
; создать DTA
* * * mov * ah,1ah
* * * mov * dx,newDTA
* * * int * 21h
; искать файлы
* * * mov * ah,4eh
* * * mov * cx,20h * * * * * ; * ..исключая папки.
* * * mov * dx,fName
* * * int * 21h
* * * jc * *stop
; переименовать/вывести имя на экран
find: call *reName_Print
* * * mov * ah,4fh * * * * * ; искать сл.файл
* * * mov * dx,newDTA
* * * int * 21h
* * * jnc * find
; Press key..
stop: mov * ah,9
* * * mov * dx,noFile
* * * int * 21h
; выход по клавише
exit: xor * ax,ax
* * * int * 16h
* * * int * 20h
*
;ннннннннннннн ПРОЦЕДУРА нннннннннннннннннннннннннннннннннннн
reName_Print:
; копируем имя файла из DTA, в буфер переименования
* * * mov * si,newDTA+30
* * * mov * di,newFn+2
@01: *lodsb
* * * or * *al,al
* * * je * *@02
* * * stosb
* * * jmp * @01
; меняем расширение файла (3 символа с конца)
; скопировать из SI в DI
@02: *sub * di,3
* * * mov * si,ext
* * * mov * cx,3
* * * rep * movsb
; переименовать файл!
* * * mov * ah,56h
* * * mov * dx,newDTA+30
* * * mov * di,newFn+2
* * * int * 21h
; выводим новое имя на экран
* * * mov * si,newFn
@3: * lodsb
* * * or * *al,al
* * * je * *@4
* * * int * 29h
* * * jmp * @3
; очищаем поле имени в DTA, для сл.имени
@4: * xor * al,al
* * * mov * di,newDTA+30
* * * mov * cx,16
* * * rep * stosb
; очищаем буфер для сл.имени
* * * mov * di,newFn+2
* * * mov * cx,16
* * * rep * stosb
ret

Решение задачи: «Перевести код из FASM в TASM»

textual
Листинг программы
.model tiny
.code
org 100h
begin:

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

  1. Указываем модель, в данном случае tiny.
  2. Указываем сегмент кода, в данном случае 100h.
  3. Создаем точку входа в программу, в данном случае begin.
  4. Задаем команду mov ax, @data.
  5. Задаем команду mov ds, ax.
  6. Задаем команду mov es, ax.
  7. Задаем команду mov fs, ax.
  8. Задаем команду mov gs, ax.
  9. Задаем команду mov ss, ax.
  10. Задаем команду mov sp, 200h.
  11. Задаем команду cld.
  12. Задаем команду lodsb.
  13. Задаем команду scaSB.
  14. Задаем команду mov dx, 0.
  15. Задаем команду bsf stx, dx.
  16. Задаем команду bsf sty, dx.
  17. Задаем команду bsf stz, dx.
  18. Задаем команду mov dx, 0.
  19. Задаем команду lodsb.
  20. Задаем команду scaSB.

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


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

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

10   голосов , оценка 4.1 из 5
Похожие ответы