关于8086汇编,int21写入文件不成功,文件为空

问题描述

关于8086汇编,int21写入文件不成功,文件为空

;rddisk.asm
;function:创建一个save.txt,并把0磁头0磁柱1扇区数据读取过去

assume cs:code,ds:data
data segment
file db 'save.txt',0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
;创建文件save.txt
mov dx,offset file
mov cx,0
mov ah,3cH
int 21H

;将0磁头,0柱面,1扇区读取到0:200内存区
mov bx,200H
mov ah,2

mov al,1

mov ch,0

mov cl,1

mov dh,0

mov dl,80H

int 13H

   ;打开save.txt
   mov dx,offset file
   mov al,1
   mov ah,3dH
   int 21h

   ;将0:200写入save.txt
   mov bx,0
   mov ds,bx
   mov dx,200H
   mov bx,ax
   mov cx,256
   mov ah,40H
   int 21H

   ;关闭文件
   mov ah,3eH
   int 21H

   mov ax,4c00H
   int 21H

code ends
end start

解决方案

你在什么环境下运行的,如果是windows,根本不让你写扇区的。
如果你要看到效果,需要安装一个bochs之类的模拟器,里面运行dos 6.x等真正的dos系统。在你的虚拟磁盘上写文件。

解决方案二:

在windows下是不能,我装了个虚拟机,里面是dos7.10,可以读写扇区,但我读写文件不成功

解决方案三:

在dos6.22实机 上没有问题的,早年经常用。

解决方案四:

谢谢楼上两位,问题已经解决,创建文件后得到的文件号和打开文件得到的文件号不一样,也就是说,创建后就相当于打开了,
已经获得了一个文件号,不需再打开。如果再次打开那就操作的不是那个文件。
删除打开的代码 写入成功

时间: 2024-10-01 14:41:13

关于8086汇编,int21写入文件不成功,文件为空的相关文章

Android手机玩8086汇编

[前言] 什么前言?要不想听老贺讲故事,直接看正文. 教C/C++课时,曾带领弟子们用手机编程序.程序稍大就不好玩了,但遇个小程序,那还是很爽的.尤其是第一次课,就在课堂,还没有在台式机上干活时. 这学期教汇编语言,也想过这事,没有落实. 其实这事应该简单,如果有Android中的DOS模拟器,那就一切妥了. 今天,和DosBox Turbo偶遇了! 这是个DOS游戏爱好者在Android中玩经典DOS游戏用的模拟器.能运行DOS程序,玩8086汇编和一套东东就没有问题. 想起我给老师们推广用"

PHP file_put_contents 将字符串写入或追加到文件

PHP file_put_contents() 函数是一次性向文件写入字符串或追加字符串内容的最合适选择. file_put_contents() file_put_contents() 函数用于把字符串写入文件,成功返回写入到文件内数据的字节数,失败则返回 FALSE 例子:  代码如下 复制代码 <?php echo file_put_contents("test.txt", "This is something."); ?> 运行该例子,浏览器输出

编程-8086汇编语句出错

问题描述 8086汇编语句出错 assume cs:code data segment db 'abcde',0 data ends stack segment dw 8 dup(0) stack ends code segment start:mov dh,0 mov dl,0 mov cl,2 mov ax,data mov ds,ax mov ax,0b800h mov es,ax mov di,0 mov si,0 call show_str mov ax,4c00h int 21h s

php学习笔记--高级教程--读取文件、创建文件、写入文件

打开文件:fopen:fopen(filename,mode);//fopen("test.txt","r"): 打开模式:r 只读方式打开,将文件指针指向文件头 r+ 读写方式打开,将文件指针指向文件头 w 写入方式,指向文件头,如果不存在则尝试创建 w+ 读写方式,指向文件头,如果不存在则尝试创建 a 写入方式打开,指向文件末尾,如果不存在则尝试创建 a+ 读写方式打开,指向文件末尾,如果不存在则尝试创建 读取文件:fread:fread(); readfile

php实现读取和写入tab分割的文件

  本文实例讲述了php实现读取和写入tab分割的文件.分享给大家供大家参考.具体分析如下: 这段php代码实现读取和写入tab分割的文件,包含两个独立的函数,一个读,一个写,例如cvs文件等 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 5

php写入数据到CSV文件的方法

 本文实例讲述了php写入数据到CSV文件的方法.分享给大家供大家参考.具体实现方法如下: <?php $row = 0; ini_set('max_execution_time', 300); $cate;$item;$value;$us; $fp = fopen("torah1.csv", "w"); if (($handle = fopen("t.csv", "r")) !== FALSE) { while (($

python写入中英文字符串到文件的方法

  这篇文章主要介绍了python写入中英文字符串到文件的方法,实例分析了Python操作中英文字符串的技巧,非常简单实用,需要的朋友可以参考下 python中如果使用系统默认的open方法打开的文件只能写入ascii吗,如果要写入中文需要用到codecs模块,下面的代码向 c:/1.txt文件写入 "你好,脚本之家 jb51.net"中文字符串 ? 1 2 3 4 5 # -*- coding: utf-8 -*- import codecs content = u'你好,脚本之家

文件传输-用xmpp传输文件不成功

问题描述 用xmpp传输文件不成功 用安卓端给spark客户端传输文件,spark端能显示接受提醒,但是选择接收后无法传输文件,而安卓端的传输状态始终是negotiating transfer,直到连接超时,logcat不断提示"DSR is on. Don't send DTR on Android",请问是什么原因?

使用Template模板生成了脚本后怎么把这个脚本的内容写入到一个txt文件中呢?求大神解答

问题描述 使用Template模板生成了脚本后怎么把这个脚本的内容写入到一个txt文件中呢?求大神解答 public static void main(String[] args) throws Exception { Map map = new HashMap(); Configuration cfg = new Configuration(); Template t = cfg.getTemplate("src/main/webapp/model/sqoop_header.ftl"