📄 diliver.lst
字号:
Turbo Assembler Version 5.0 05-20-08 15:07:53 Page 1
C:\DOCUME~1\ADMINI~1\桌面\diliver.asm
1 0000 data segment
2 0000 64 3A 5C 64 69 6C 69+ file_send db 'd:\diliver.txt',0
3 76 65 72 2E 74 78 74+
4 00
5 000F 0000 handle dw 0
6 0011 07D0*(00) buffer db 2000 dup(0)
7 07E1 03E8 size_send dw 1000
8 07E3 data ends
9
10 0000 stack segment stack 'stack'
*Warning* C:\DOCUME~1\ADMINI~1\桌面\diliver.asm(8) Reserved word used as symbol: STACK
11 0000 64*(00) db 100 dup(0)
12 0064 stack ends
13
14 0000 code segment
15 assume cs:code,ds:data,es:data,ss:stack
16
17 0000 main proc far
18 0000 B8 0000s mov ax,data
19 0003 8E D8 mov ds,ax
20 0005 8E C0 mov es,ax
21 0007 BA 0000r lea dx,file_send ;打开文件,只读方式
22 000A B0 00 mov al,0
23 000C B4 3D mov ah,3dh
24 000E CD 21 int 21h
25
26 0010 A3 000Fr mov handle,ax ;保存文件句柄
27 0013 8B D8 mov bx,ax ;文件句柄
28
29 0015 BA 0011r lea dx,buffer ;将要发送的文件内容读入发送缓冲区
30 0018 B4 3F mov ah,3fh ;读文件
31 001A 8B 0E 07E1r mov cx,size_send
32 001E CD 21 int 21h
33 0020 A3 07E1r mov size_send,ax ;字节数
34
35 0023 B4 3E mov ah,3eh
36 0025 8B 1E 000Fr mov bx,handle ;关闭文件
37 0029 CD 21 int 21h
38
39 002B BA 03FB mov dx,3fbh ;8250初始化
40 002E B0 80 mov al,80h ;允许波特率访问,将除数锁存
41 0030 EE out dx,al
42
43 0031 BA 03F8 mov dx,3f8h ;写波特率因子LSB
44 0034 B0 80 mov al,80h
45 0036 EE out dx,al
46 0037 42 inc dx ;dx=3f9写波特率因子MSB
47 0038 B0 01 mov al,01h
48 003A EE out dx,al
49
50 003B BA 03FB mov dx,3fbh ;写线路控制寄存器,允许访问接收数据、发送保持和中段允许寄存器
51 003E B0 1A mov al,00011010b ;偶校验,一位停止位,7位数据位
52 0040 EE out dx,al
53
54 0041 42 inc dx ;写MODEN控制寄存器,选OUT1
55 0042 B0 0B mov al,00001011b ;数据端就绪,请求发送,数据终端就绪
56 0044 EE out dx,al
Turbo Assembler Version 5.0 05-20-08 15:07:53 Page 2
C:\DOCUME~1\ADMINI~1\桌面\diliver.asm
57
58 0045 BE 0011r lea si,buffer
59 0048 8B 0E 07E1r mov cx,size_send
60 004C 8A 04 again: mov al,[si]
61 004E 46 inc si
62 004F BA 03F8 mov dx,3f8h
63 0052 EE out dx,al ;发送保持寄存器
64
65 0053 BA 03FD urat: mov dx,3fdh ;查询线路状态寄存器,看发送保持寄存器中
66 ;的数据是否已送至移位寄存器中
67 0056 EC in al,dx
68 0057 A8 20 test al,00100000b
69 0059 74 F8 jz urat ;不断检测,当发送寄存器空时,发送下一位
70 005B E2 EF loop again
71
72 005D B0 1A mov al,1ah ;0001 1010
73 005F BA 03F8 mov dx,3f8h
74 0062 EE out dx,al
75
76
77 0063 B4 4C mov ah,4ch
78 0065 CD 21 int 21h
79
80 0067 main endp
81 0067 code ends
82 end main
Turbo Assembler Version 5.0 05-20-08 15:07:53 Page 3
Symbol Table
Symbol Name Type Value
??DATE Text "05-20-08"
??FILENAME Text "diliver "
??TIME Text "15:07:53"
??VERSION Number 0500
@CPU Text 0101H
@CURSEG Text CODE
@FILENAME Text DILIVER
@WORDSIZE Text 2
AGAIN Near16 CODE:004C
BUFFER Byte DATA:0011
FILE_SEND Byte DATA:0000
HANDLE Word DATA:000F
MAIN Far16 CODE:0000
SIZE_SEND Word DATA:07E1
URAT Near16 CODE:0053
Groups & Segments Bit Size Align Combine Class
CODE 16 0067 Para none
DATA 16 07E3 Para none
STACK 16 0064 Para Stack STACK
Turbo Assembler Version 5.0 05-20-08 15:07:53 Page 4
Error Summary
*Warning* C:\DOCUME~1\ADMINI~1\桌面\diliver.asm(8) Reserved word used as symbol: STACK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -