📄 eg0405.lst
字号:
Microsoft (R) Macro Assembler Version 6.15.8803 08/18/07 17:15:12
eg0405.asm Page 1 - 1
;eg0405.asm
include io32.inc
C .nolist
C .list
C
00000000 .data
00000000 45 6E 74 65 72 in_msg1 byte 'Enter a number: ',0
20 61 20 6E 75
6D 62 65 72 3A
20 00
00000011 45 6E 74 65 72 in_msg2 byte 'Enter another number: ',0
20 61 6E 6F 74
68 65 72 20 6E
75 6D 62 65 72
3A 20 00
00000028 54 77 6F 20 6E out_msg1 byte 'Two numbers are equal: ',0
75 6D 62 65 72
73 20 61 72 65
20 65 71 75 61
6C 3A 20 00
00000040 54 68 65 20 6C out_msg2 byte 'The less number is: ',0
65 73 73 20 6E
75 6D 62 65 72
20 69 73 3A 20
00
00000055 0D 0A 54 68 65 out_msg3 byte 13,10,'The greater number is: ',0
20 67 72 65 61
74 65 72 20 6E
75 6D 62 65 72
20 69 73 3A 20
00
00000000 .code
00000000 start:
00000000 B8 00000000 R mov eax,offset in_msg1 ; 提示输入第一个数据
00000005 E8 00000000 E call dispmsg
0000000A E8 00000000 E call readsid ; 输入第一个数据
0000000F 8B D8 mov ebx,eax ; 保存到EBX
00000011 B8 00000011 R mov eax,offset in_msg2 ; 提示输入第二个数据
00000016 E8 00000000 E call dispmsg
0000001B E8 00000000 E call readsid ; 输入第二个数据
00000020 8B C8 mov ecx,eax ; 保存到ECX
00000022 3B D9 cmp ebx,ecx ; 二个数据进行比较
00000024 75 13 jne nequal ; 两数不相等,转移
00000026 B8 00000028 R mov eax,offset out_msg1 ; 两数相等
0000002B E8 00000000 E call dispmsg
00000030 8B C3 mov eax,ebx
00000032 E8 00000000 E call dispsid ; 显示相等的数据
00000037 EB 26 jmp done ; 转移到结束
00000039 7C 02 nequal: jl first ; EBX较小,不需要交换,转移
0000003B 87 D9 xchg ebx,ecx ; EBX保存较小数,ECX保存较大数
0000003D B8 00000040 R first: mov eax,offset out_msg2 ; 显示较小数
00000042 E8 00000000 E call dispmsg
00000047 8B C3 mov eax,ebx ; 较小数在EBX中
00000049 E8 00000000 E call dispsid
0000004E B8 00000055 R mov eax,offset out_msg3 ; 显示较大数
00000053 E8 00000000 E call dispmsg
00000058 8B C1 mov eax,ecx ; 较大数在ECX中
0000005A E8 00000000 E call dispsid
0000005F done:
exit 0
end start
Microsoft (R) Macro Assembler Version 6.15.8803 08/18/07 17:15:12
eg0405.asm Symbols 2 - 1
Macros:
N a m e Type
exit . . . . . . . . . . . . . . Proc
Segments and Groups:
N a m e Size Length Align Combine Class
FLAT . . . . . . . . . . . . . . GROUP
_DATA . . . . . . . . . . . . . 32 Bit 0000006F Para Public 'DATA'
_TEXT . . . . . . . . . . . . . 32 Bit 00000066 Para Public 'CODE'
Procedures, parameters and locals:
N a m e Type Value Attr
ExitProcess . . . . . . . . . . P Near 00000000 FLAT Length= 00000000 External STDCALL
Symbols:
N a m e Type Value Attr
@CodeSize . . . . . . . . . . . Number 00000000h
@DataSize . . . . . . . . . . . Number 00000000h
@Interface . . . . . . . . . . . Number 00000003h
@Model . . . . . . . . . . . . . Number 00000007h
@code . . . . . . . . . . . . . Text _TEXT
@data . . . . . . . . . . . . . Text FLAT
@fardata? . . . . . . . . . . . Text FLAT
@fardata . . . . . . . . . . . . Text FLAT
@stack . . . . . . . . . . . . . Text FLAT
dispbb . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispbd . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispbw . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispcrlf . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispc . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
disphb . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
disphd . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
disphw . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispmsg . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
disprb . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
disprd . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
disprf . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
disprw . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispsib . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispsid . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispsiw . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispuib . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispuid . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
dispuiw . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
done . . . . . . . . . . . . . . L Near 0000005F _TEXT
first . . . . . . . . . . . . . L Near 0000003D _TEXT
in_msg1 . . . . . . . . . . . . Byte 00000000 _DATA
in_msg2 . . . . . . . . . . . . Byte 00000011 _DATA
nequal . . . . . . . . . . . . . L Near 00000039 _TEXT
out_msg1 . . . . . . . . . . . . Byte 00000028 _DATA
out_msg2 . . . . . . . . . . . . Byte 00000040 _DATA
out_msg3 . . . . . . . . . . . . Byte 00000055 _DATA
readbb . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readbd . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readbw . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readc . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readhb . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readhd . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readhw . . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readmsg . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readsib . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readsid . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readsiw . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readuib . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readuid . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
readuiw . . . . . . . . . . . . L Near 00000000 FLAT External STDCALL
start . . . . . . . . . . . . . L Near 00000000 _TEXT Public STDCALL
0 Warnings
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -