目录 上一页 下一页 下一章

-224- PC机汇编语言实战精解


main



















outdec:













exit:


main
code

assume
proc
mov
mov

mov
mov
int
jc

mov

mov
mov
mov
mov
int
jc

mov
mov

div
xchg
add
mov
dec
mov
xor
cmp
jnz

mov
mov
int

mov
int
endp
ends
end
cs:code
far
ax,data
ds,ax

dx,offset fname
ax,3d00h
21h
exit

bx,ax

cx,0
dx,0
ah,42h
al,02h
21h
exit

cx,10
si,offset tbuff+4

cx
ax,dx
al,30h
byte ptr [si],al
si
ax,dx
dx,dx
ax,0
outdec

ah,9
dx,offset msg
21h

ah,4ch
21h


main


;初始化DS寄存器


;按"读取"方式打开文件


;若文件未能正确打开,转EXIT

;BX寄存器获得文件句柄

;设置新的文件指针偏移量为0

;选42H功能
;从文件尾部计数偏移量
;移动文件读写指针
;若没有正确移动文件指针,转EXIT结束
;准备输出DX:AX中的文件长度
;CX寄存器送入10
;SI寄存器指向数字的缓冲区尾部

;DX:AX中的长度值除以10
;将余数送入AX寄存器,商送入DX寄存器
;将余数加上30H转换成数字的ASCII码
;将个位数字送入缓冲区
;SI寄存器指向十位数字的位置
;将商转换成32位数并存入DX:AX

;商是0吗?
;若商不是0,则转OUTDEC继续计算数位

;输出带有长度数的字符串MSG



;结束进程





Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章