Не е точно каквото питаш, нито е написано както трябва, ама дано ти е полезно да видиш отместванията как са.. :-)
seg_a segment byte public
assume cs:seg_a, ds:seg_a
org 100h
omm proc far
start:
mov dx,offset data_1
mov ah,9
int 21h
mov ax, 3d00h
mov dx, offset fname1
int 21h
mov fhndl1, ax
mov ax, 3d02h
mov dx, offset fname2
int 21h
mov fhndl2, ax
goo:
mov ax, 3f00h
mov bx, fhndl1
mov cx, 800h
mov dx, offset data_2
int 21h
mov cx,ax
mov fsize,ax
mov ax,0BF00h
mov bx,8040h
mov si,offset data_2
locloop_1:
cmp byte ptr cs:[si],ah
ja loc_2 ; Jump if above
cmp byte ptr cs:[si],bh
jb loc_2 ; Jump if below
add byte ptr cs:[si],bl
loc_2:
inc si
loop locloop_1 ; Loop if cx > 0
mov ax, 4000h
mov bx, fhndl2
mov cx, fsize
mov dx, offset data_2
int 21h
cmp fsize, 800h
jnb goo
mov ax, 3e00h
mov bx, fhndl1
int 21h
mov ax, 3e00h
mov bx, fhndl2
int 21h
mov ax, 4c00h
int 21h
data_1 db 'dos2win 0.1 by velin@zadnik.org, GPL'
db 0Dh, 0Ah, '$'
data_2 dw 1024 dup (0)
fname1 db 'FILE1.TXT'
db 00
fname2 db 'FILE2.TXT'
db 00
fhndl1 dw 00
fhndl2 dw 00
fsize dw 00
omm endp
seg_a ends
end start
"Yelp." -- Gaspode the wonder dog.
Редактирано от Йopooл-Гyй на 22.05.03 01:24.