Write assembly that opens each file in a dir and changes foo with bar Write an assembly program that opens each file in a directory and then changes all of the occurences of foo with bar. ;Open a file handle mov ax, 3Dh mov dx, offset filename int 21h ;Check that the file handle is valid cmp ax, 0 jne file_open ;Start looping through the directory mov si, offset directory mov di, offset filename loop: mov al, [si] cmp al, 0 je exit ;Copy the filename mov [di], al inc si inc di jmp loop file_open: ;Read the file and search for "foo" mov bx, ax mov ah, 3Fh mov cx, 0FFFFh mov dx, offset buffer int 21h ;Check if the end of file has been reached cmp ax, 0 je exit ;Loop through the read buffer mov si, offset buffer mov di, offset replace loop2: mov al, [si] cmp al, 'f' je check_foo inc si jmp loop2 check_foo: cmp byte [si + 1], 'o' jne loop2 cmp byte [si + 2], 'o' jne loop2 ;Replace "foo" with "bar" mov [di], 'b' inc di mov [di], 'a' inc di mov [di], 'r' inc di jmp loop2 ;Write the modified buffer to the file mov bx, ax mov ah, 40h mov cx, 0FFFFh mov dx, offset replace int 21h ;Go to the next file jmp file_open exit: ;Close the file mov ah, 3Eh int 21h ;Exit mov ax, 4C00h int 21h |