天黑请闭眼_1993 发表于 2013-12-17 22:37:39

汇编读写代码

file:///C:\Users\xp\AppData\Roaming\Tencent\Users\770585725\QQ\WinTemp\RichOle\BUWW0U{E78K(X3Q{~C}U00R.jpg这是通过wfile写入的数据,
但是后面有空格,通过rfile读的时候只能读后面几位,所以输出的是空格,现在要输出数据,求解???
wfile的代码:data            segment
file            db   'c:\11.txt' , 0         ;创建文件的文件名
buf                         db 21,?,21 dup (?);输入字符串空间
error_message   db   0ah , 'error !' , '$'   ;出错时的提示
message      db   0ah , 'ok !$'          ;操作成功后的提示
handle          dw    ?                  ;保存文件号
data         ends
code         segment
            assumecs:code, ds:data
start:
            mov ax , data
            mov ds , ax
                          mov dx , offset buf ;键盘输入到缓冲区
                          mov ah , 0ah
                          int 21h
                  

            mov dx,offset file
            mov cx , 0
            mov ah , 3ch
            int 21h               ;创建文件,若磁盘上原有此文件,则覆盖
            jc error               ;创建出错,转error处
            mov handle , ax         ;保存文件号
            mov bx , ax
            mov cx , 20
              mov dx , offset (buf+2)
            mov ah , 40h
            int 21h                        ;向文件中写入16个字节内容
            jc error                        ;写出错,转error处
            mov bx , handle
            mov ah , 3eh
            int 21h                        ;关闭文件
             jc error                           ;关闭文件出错,转error处
             mov dx , offset message
            mov ah , 9
            int 21h                            ;操作成功后显示提示
            jmp end1
error:
            mov dx , offset error_message
            mov ah , 9
            int 21h                              ;显示错误提示`
end1:
            mov ah , 4ch
            int 21h
code   ends
             endstart


infile的代码:
data            segment
file            db   'c:\11.txt' , 0         ;文件名
buf                 db 100 dup (?);输入字符串空间
error_message    db   0ah , 'error !' , '$'    ;出错时的提示
handle         dw?                ;保存文件号
data             ends
code            segment
                assumecs:code, ds:data
start:
            mov ax , data
            mov ds , ax

            mov dx , offset file
            mov al , 0
            mov ah , 3dh
            int 21h                  ;打开文件

            jc error                  ;若打开出错,转error
            mov handle , ax         ;保存文件号
            mov bx , ax
            mov cx , 255
            mov dx , offset buf
            mov ah , 3fh
            int 21h                  ;从文件中读255字节→buf

            jc error                  ;若读出错,转error
            mov bx , ax            ;实际读到的字符数送入bx
            mov buf , '$'          ;在文件结束处放置一“$”符
            mov dx , offset (buf)
            mov ah , 09h
            int 21h                            ;显示文件内容
            mov bx , handle
            mov ah , 3eh
            int 21h                            ;关闭文件
            jnc end1             ;若关闭过程无错,转到end1处返回dos
error:
            mov dx , offset error_message
            mov ah , 9
            int 21h                            ;显示错误提示
end1:
             mov ah , 4ch
             int 21h
code   ends
             endstart



大娱乐家_╮ 发表于 2013-12-18 13:48:49

完全懂了。哈哈

364063141 发表于 2013-12-23 10:22:16

支持鱼C,顶一下
页: [1]
查看完整版本: 汇编读写代码