⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file2.asm

📁 题目:抢答器控制模拟程序设计 任务: 用汇编语言模拟设计一抢答器工作的程序。
💻 ASM
字号:
;DOS功能调用INT 21H:文件创建(3CH),打开(3DH),
;读(3FH)/写(40H),关闭(3EH),移动文件指针(4H)
;程序要求:打开一个数据文件TEST2.DAT,若不存在,创建文件,写入字串"This is a data file"
;关闭该文件,然后打开,从第5个字节开始,读出文件内容并显示

DATA  SEGMENT
      FNAME  DB 'TEST2.DAT',0
      HANDLE  DW  ?                             ;文件代号
      BUF     DB 'This is a data file',0dh,0ah   
      LEN     EQU  $-BUF                        ;BUF的长度
      dat     db  100h DUP(?)                   ;读文件内容的缓冲区 
STACK SEGMENT STACK
	DW 64 DUP(0)
STACK ENDS

CODE SEGMENT
	ASSUME CS:CODE,SS:STACK,DS:DATA,ES:DATA
MAIN    PROC   FAR
START:	MOV    AX,DATA
        MOV    DS,AX
        MOV    ES,AX
	;....打开文件....
        MOV    DX,OFFSET  FNAME         ;DS:DX内容:文件名.扩展名
        MOV    AL,0                     ;打开文件允许读    
        MOV    AH,3DH
        INT    21H
        JC     L1        
        MOV    HANDLE,AX                ;文件号在AX中
        JMP    L2
       ;.....创建文件.....
    L1: MOV    DX,  OFFSET  FNAME
        MOV    CX, 0                    ;R/W   attribut
        mov    ah,3ch
        INT    21H
        MOV    HANDLE,AX
        ;......写入数据
        MOV    DX,OFFSET  BUF
        MOV    CX,LEN
        MOV    BX,HANDLE
        MOV    AH,40H
        INT    21H
        ;...关闭文件....
        MOV    BX,HANDLE
        MOV    AH,3EH
        INT    21H
        ;....打开文件....
        MOV    DX,OFFSET  FNAME
        MOV    AL,0           ;读
        MOV    AH,3DH
        INT    21H
        MOV    HANDLE,AX
        ;移动文件指针
   L2:  MOV    BX,AX
        MOV    AL,0                  ;从文件开始移
        MOV    DX,5                  ;位移量为4 
        MOV    CX,0
        MOV    AH,42H
        INT    21H
        ;.....从文件指针当前位置读
        MOV    BX,HANDLE             ;BX=文件号,CX=字节数
        MOV    CX,100H
        MOV    DX,OFFSET  DAT        ;DX=缓冲区首地址  
        MOV    AH,3FH
        INT    21H
        MOV    CX,AX                 ;AX=实际读取字节数 
	;显示读取内容
        MOV    BX,0
NEXT  : MOV    DL,DAT[BX]
        MOV    AH,02H
        INT    21H
        INC    BX
        LOOP   NEXT
        ;...关闭文件...
        MOV     BX,HANDLE            ;BX=文件号
        MOV     AH,3EH
        INT     21H
        ;....返回DOS
        MOV     AH,4CH
        INT     21H
   MAIN ENDP
 
CODE ENDS
     END START


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -