📄 04.lst
字号:
Microsoft (R) Macro Assembler Version 6.11 11/23/07 11:14:10
F:\课程\aaa\souce\04.asm Page 1 - 1
0000 data segment
0000 0032 [ num dw 50 dup(?)
0000
]
0064 0000 i dw 0
0066 70 6C 65 61 73 65 char db 'please input the data',10,13,'$'
20 69 6E 70 75 74
20 74 68 65 20 64
61 74 61 0A 0D 24
007E 0D 54 68 65 20 6F char3 db 0dh,'The order of the numbers is:',0ah,0dh,'$'
72 64 65 72 20 6F
66 20 74 68 65 20
6E 75 6D 62 65 72
73 20 69 73 3A 0A
0D 24
009E 0005 [ rec db 5 dup(?)
00
]
00A3 data ends
0000 code segment
assume cs:code,ds:data
0000 start:
0000 B8 ---- R mov ax,data
0003 8E D8 mov ds,ax
0005 BA 0066 R mov dx,offset char
0008 B4 09 mov ah,09h
000A CD 21 int 21h
000C BE 0000 mov si,0
000F BB 0000 mov bx,0
0012 input:
0012 B4 01 mov ah,01h
0014 CD 21 int 21h
0016 3C 2C cmp al,','
0018 74 17 jz write1
001A 3C 0D cmp al,0dh
001C 74 23 jz write2
001E 2C 30 sub al,30h
0020 8A C8 mov cl,al
0022 B5 00 mov ch,00h
0024 8B C3 mov ax,bx
0026 BB 000A mov bx,0ah
0029 F7 E3 mul bx
002B 8B D8 mov bx,ax
002D 03 D9 add bx,cx
002F EB E1 jmp input
0031 write1:
0031 89 9C 0000 R mov [num+si],bx
0035 83 C6 02 add si,2
0038 FF 06 0064 R inc i
003C BB 0000 mov bx,0
003F EB D1 jmp input
0041 write2:
0041 89 9C 0000 R mov [num+si],bx
0045 83 C6 02 add si,2
0048 FF 06 0064 R inc i
004C B2 0A mov dl,0ah
004E B4 02 mov ah,02h
0050 CD 21 int 21h
0052 beforeorder:
0052 8B 0E 0064 R mov cx,i
0056 49 dec cx
0057 loop1:
0057 8B F9 mov di,cx
0059 BB 0000 mov bx,0
005C loop2:
005C 8B 87 0000 R mov ax,num[bx]
0060 3B 87 0002 R cmp ax,num[bx+2]
0064 76 08 jbe continue
0066 87 87 0002 R xchg ax,num[bx+2]
006A 89 87 0000 R mov num[bx],ax
006E continue:
006E 83 C3 02 add bx,2
0071 E2 E9 loop loop2
0073 8B CF mov cx,di
0075 E2 E0 loop loop1
0077 initnum:
0077 8D 16 007E R lea dx,char3
007B B4 09 mov ah,09h
007D CD 21 int 21h
007F 8B 0E 0064 R mov cx,i
0083 BF 0000 mov di,0
0086 loopnum:
0086 8B 85 0000 R mov ax,[num+di]
008A 83 C7 02 add di,2
008D BB 000A mov bx,10
0090 BE 0004 mov si,4
0093 changenum:
0093 BA 0000 mov dx,0
0096 F7 F3 div bx
0098 88 94 009E R mov [rec+si],dl
009C 4E dec si
009D 83 F8 00 cmp ax,0
00A0 77 F1 ja changenum
00A2 outputnum:
00A2 46 inc si
00A3 8A 94 009E R mov dl,[rec+si]
00A7 80 C2 30 add dl,30h
00AA B4 02 mov ah,02h
00AC CD 21 int 21h
00AE 83 FE 04 cmp si,4
00B1 72 EF jb outputnum
00B3 B2 20 mov dl,20h
00B5 B4 02 mov ah,02h
00B7 CD 21 int 21h
00B9 E2 CB loop loopnum
00BB stop:
00BB B4 4C mov ah,4ch
00BD CD 21 int 21h
00BF code ends
end start
Microsoft (R) Macro Assembler Version 6.11 11/23/07 11:14:10
F:\课程\aaa\souce\04.asm Symbols 2 - 1
Segments and Groups:
N a m e Size Length Align Combine Class
code . . . . . . . . . . . . . . 16 Bit 00BF Para Private
data . . . . . . . . . . . . . . 16 Bit 00A3 Para Private
Symbols:
N a m e Type Value Attr
beforeorder . . . . . . . . . . L Near 0052 code
changenum . . . . . . . . . . . L Near 0093 code
char3 . . . . . . . . . . . . . Byte 007E data
char . . . . . . . . . . . . . . Byte 0066 data
continue . . . . . . . . . . . . L Near 006E code
initnum . . . . . . . . . . . . L Near 0077 code
input . . . . . . . . . . . . . L Near 0012 code
i . . . . . . . . . . . . . . . Word 0064 data
loop1 . . . . . . . . . . . . . L Near 0057 code
loop2 . . . . . . . . . . . . . L Near 005C code
loopnum . . . . . . . . . . . . L Near 0086 code
num . . . . . . . . . . . . . . Word 0000 data
outputnum . . . . . . . . . . . L Near 00A2 code
rec . . . . . . . . . . . . . . Byte 009E data
start . . . . . . . . . . . . . L Near 0000 code
stop . . . . . . . . . . . . . . L Near 00BB code
write1 . . . . . . . . . . . . . L Near 0031 code
write2 . . . . . . . . . . . . . L Near 0041 code
0 Warnings
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -