Перевести код из 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:
Объяснение кода листинга программы
- Указываем модель, в данном случае
tiny
. - Указываем сегмент кода, в данном случае 100h.
- Создаем точку входа в программу, в данном случае
begin
. - Задаем команду
mov ax, @data
. - Задаем команду
mov ds, ax
. - Задаем команду
mov es, ax
. - Задаем команду
mov fs, ax
. - Задаем команду
mov gs, ax
. - Задаем команду
mov ss, ax
. - Задаем команду
mov sp, 200h
. - Задаем команду
cld
. - Задаем команду
lodsb
. - Задаем команду
scaSB
. - Задаем команду
mov dx, 0
. - Задаем команду
bsf stx, dx
. - Задаем команду
bsf sty, dx
. - Задаем команду
bsf stz, dx
. - Задаем команду
mov dx, 0
. - Задаем команду
lodsb
. - Задаем команду
scaSB
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д