;truncar.asm
%macro truncar nombre de archivo len=0
mov ecx, nombre de archivo; puntero al nombre de archivo
mov edx, len; longitud para limitar el tamaño del archivo
xor eax, eax; abrir solo lectura
mov ebx, 0; truncar si existe
llamar a [abrir]; abrir el archivo
prueba eax, eax; ¿éxito?
jnz @@truncado
xor eax, eax;truncar
llamar a [truncar]; truncar el archivo
prueba eax, eax; ¿éxito?
jnz @@truncado
@@truncado:
pop ecx; restaurar ecx antes de la macro
% fin macro
sección .datos
nombre de archivo db 'truncate.txt',0
len dw 5
sección .texto
asumir cs:código, ds:datos
organización 100h
truncar nombre de archivo, len
mov ah, 4 canales; salir del programa
entre 21h
```