6

我的任务是创建一个将一些字符串写入文件的程序。到目前为止,我想出了这个:

org     100h

mov     dx, text
mov     bx, filename
mov     cx, 5
mov     ah, 40h
int     21h

mov     ax, 4c00h
int     21h

text db "Adam$"
filename db "name.txt",0

但它什么也没做。我正在使用 nasm 和 dosbox。

4

1 回答 1

11

您必须先创建文件(或者如果它已经存在则打开它),然后写入字符串,最后关闭文件。下一段代码是MASM,是用EMU8086做的,我贴出来是因为它可以帮助你理解怎么做,中断是一样的,还有参数,所以算法:

.stack 100h
.data

text db "Adam$"
filename db "name.txt",0
handler dw ?

.code          
;INITIALIZE DATA SEGMENT.
  mov  ax,@data
  mov  ds,ax

;CREATE FILE.
  mov  ah, 3ch
  mov  cx, 0
  mov  dx, offset filename
  int  21h  

;PRESERVE FILE HANDLER RETURNED.
  mov  handler, ax

;WRITE STRING.
  mov  ah, 40h
  mov  bx, handler
  mov  cx, 5  ;STRING LENGTH.
  mov  dx, offset text
  int  21h

;CLOSE FILE (OR DATA WILL BE LOST).
  mov  ah, 3eh
  mov  bx, handler
  int  21h      

;FINISH THE PROGRAM.
  mov  ax,4c00h
  int  21h           
于 2015-04-09T17:50:08.700 回答