我的程序要求读取一个文件名,然后它应该生成一个文件名为"Clone_originalfilename“的文件的克隆。这是我的代码块:
.data
filename db 100
db ?
db 100 dup (0)
copyfile db "Clone_", 0
.code
mov dx, offset filename ; reads the filename entered by user
mov ah, 0Ah
int 21h
mov si, offset filename + 1 ; replaces the last character (Enter) to '$'
mov cl, [ si ]
mov ch, 0
inc cx
add si, cx
mov al, '$'
mov [ si ], al
; concatenate "Clone_" to the filename
lea si, filename
lea di, copyfile
L0:
cmp byte ptr [di], '_'
jz exL0
inc di
jmp L0
exL0:
inc di
add si, 2
xor bx, bx
L1:
cmp byte ptr [si], 0
jz exL1
mov bl, byte ptr [si]
mov byte ptr [di], bl
inc si
inc di
jmp L1
exL1:
inc di
mov bl, byte ptr [si]
mov byte ptr [di], bl
mov dx, offset filename
mov al, 2
mov ah, 3Dh
int 21h
mov handle, ax
jc erroropening
....但每当我执行它时,程序就会进入错误打开,显示文件无法读取,我认为问题出在字符串的连接上,但我不知道如何修复它。抱歉,我是个新手。
发布于 2015-11-01 02:30:11
在这个简短的代码片段中有很多错误。让我们假设您忘记了复制
.model small
.stack 1000h和
.code
start:
END start然后仍然是:
DS没有初始化:mov ax,@data mov ds,ax
所以至少lea di, copyfile不会加载正确的地址。filename存储在错误的位置。
copyfile db "Clone_", 0.
cmp byte ptr [si], 0).
int 21h/ah=0Ah.太长了。
offset filename上你找不到文件名,而是输入结构的开头https://stackoverflow.com/questions/33454576
复制相似问题