Перевести код из 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д