q.asm
来自「读取fat分区表信息」· 汇编 代码 · 共 115 行
ASM
115 行
CODE SEGMENT PUBLIC
ASSUME CS:CODE,DS:CODE
ORG 100H
START: JMP BEGIN
MSG1 DB 'FAT id byte=','$'
MSG2 DB 'Number of cluster=','$'
MSG3 DB 'Sectors per clusters','$'
MSG4 DB 'Sector size=','$'
STRING DB 6 DUP(?),0DH,0AH,'$'
FATID DB 0
CLUST DW 0
SECT DB 0
SECSIZE DW 0
;
;conver
;
NUMASC PROC
MOV CX,6
MOV BX,OFFSET STRING
BLANK: MOV BYTE PTR[BX],' '
INC BX
LOOP BLANK
MOV SI,10
NEXT: XOR DX,DX
DIV SI
ADD DX,'0'
DEC BX
MOV [BX],DL
OR AX,AX
JNZ NEXT
RET
NUMASC ENDP
;
;main pro
;
BEGIN: MOV AX,CS
MOV DS,AX
PUSH DS
MOV DL,03H
MOV AH,1CH
INT 21H
MOV AH,[BX]
POP DS
MOV BYTE PTR FATID,AH
MOV WORD PTR CLUST,DX
MOV DX,OFFSET MSG1
MOV AH,09H
INT 21H
XOR AX,AX
MOV AL,BYTE PTR FATID
CALL NUMASC
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
XOR AX,AX
MOV AX,WORD PTR CLUST
CALL NUMASC
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
MOV AH,09H
INT 21H
XOR AX,AX
MOV AL,BYTE PTR FATID
CALL NUMASC
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
MOV DX,OFFSET MSG2
MOV AH,09H
INT 21H
XOR AX,AX
MOV AX,WORD PTR CLUST
CALL NUMASC
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
MOV DX,OFFSET MSG3
MOV AH,09H
INT 21H
XOR AX,AX
MOV AL,BYTE PTR SECT
CALL NUMASC
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
MOV DX,OFFSET MSG4
MOV AH,09H
INT 21H
XOR AX,AX
MOV AX,WORD PTR SECSIZE
CALL NUMASC
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
DONE: MOV AH,01H
INT 21H
CODE ENDS
END START
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?