批量创建文件 用法例如:ok.exe 100 txt
debug吧
全部回复
仅看楼主
level 7
data segment
     assume ds:data
buff      db 10 dup(?)
sum       dw 0
my_fcb label byte
drive     db    0
file_name db '        '
ext_name  db '   '
cur_block dw ?
rec_size  dw ?
file_size dw 2 dup(?)
crea_data dw ?
position  db 10 dup(?)
cur_rec   db ?
rel_rec   dw 2 dup(?)
errmsg    db 'error',0dh,0ah,24h
data ends
code segment
     assume cs:code
main proc far
     xor cx,cx        ;处理总文件数
     xor dx,dx        ;准备保存字符转成十进制后的和
     lea si,ds:[5dh]
     lea di,ds:[5dh]
nex6:
     lodsb
     cmp al,20h
     jz nex5
     sub al,30h      ;换成十进制
     stosb
     inc cx
     jmp nex6     
nex5:
     push cx    ;* 位数
     dec cx         ;乘以10的次数  外循环
     lea si,ds:[5dh]
     mov bx,10
nex8:
     push cx    ;**内循环
     lodsb
     xor ah,ah
nex7:
     mul bx
     loop nex7    ;内循环  
     add ds:[5ah],ax  ;寄存器不够用时  用内存单元
     pop cx       ;**  (特别要注意loop 前面的出入栈要对应
     loop nex8    ;处理下一个  外循环
     
     pop cx     ;*个位
     add cx,5ch
     mov bx,cx
     mov al,[bx]
     xor ah,ah
     mov dh,ds:[5bh]
     mov dl,ds:[5ah]

2009年05月04日 05点05分 1
level 7
     add dx,ax
     
     lea si,ds:[6dh]    ; 处理扩展名
     mov cx,3
nex9:
     lodsb
     xor ah,ah
     push ax   ;***
     loop nex9
     mov ax,data
     mov ds,ax
     mov es,ax
     mov cx,3
nexa:
     mov di,offset ext_name-1   
     add di,cx
     pop ax    ;***
     stosb
     loop nexa
;----------------------------------
     mov cx,dx      ;外循环
     mov ax,1       ;内循环
nex4:
     push cx    ;*
     push ax    ;**
     mov di,offset buff
     xor dx,dx
     xor cx,cx
     mov bx,0ah
nex2:
     div bx
     add dl,30h ;余数换成ascii
     push ax    ;*** 
     mov ax,dx  ;    
     stosb      ;保存余数
     inc cx     ;计算位数
     xor dx,dx  ;准备重新保存余数
     pop ax     ;***
     cmp ax,0   ;商是否为0
     jz nex1
     jmp nex2
nex1:
     push cx    ;****
     mov si,offset buff
     mov di,offset file_name-1
nex3:
     lodsb
     add di,cx
     xor ah,ah
     stosb
     mov di,offset file_name-1
     loop nex3
     mov dx,offset my_fcb
     mov ah,16h
     int 21h
     mov ah,10h
     int 21h
     mov di,offset file_name 
     pop cx      ;**** 位数
     xor ax,ax
     rep stosb
     pop ax    ;**
     inc ax
     pop cx    ;*
     loop nex4
     mov ah,4ch
     int 21h
main endp
code ends
     end  main

2009年05月04日 05点05分 2
level 7
以前写的
现在看起来晕菜菜
嘿嘿
这就是写代码时不注释的后果
2009年05月04日 05点05分 3
level 7
xxx.exe 数量 扩展名
2009年05月04日 05点05分 4
level 10
???太复杂了,我们菜鸟怎么看得懂?
2009年05月14日 00点05分 5
1