📄 eg0413.lst
字号:
Microsoft (R) Macro Assembler Version 6.15.8803 08/18/07 20:49:41
eg0413.asm Page 1 - 1
;eg0413.asm
include io32.inc
C .nolist
C .list
C
00000000 .data
00000000 4C 65 74 20 75 string byte 'Let us have a try !',0dh,0ah,0 ;以0结尾的字符串
73 20 68 61 76
65 20 61 20 74
72 79 20 21 0D
0A 00
00000000 .code
00000000 start:
00000000 B8 00000000 R mov eax,offset string ; 显示处理前的字符串
00000005 E8 00000000 E call dispmsg
0000000A BE 00000000 R mov esi,offset string
0000000F 80 3E 00 outlp: cmp byte ptr [esi],0 ; 外循环,先判断后循环
00000012 74 17 jz done ; 为0结束
00000014 80 3E 20 again: cmp byte ptr [esi],' ' ; 检测是否是空格
00000017 75 0F jnz next ; 不是空格继续循环
00000019 8B FE mov edi,esi ; 是空格,进入剔除空格分支
0000001B 47 inlp: inc edi ; 该分支是循环程序
0000001C 8A 07 mov al,[edi] ; 前移一个位置
0000001E 88 47 FF mov [edi-1],al
00000021 80 3F 00 cmp byte ptr [edi],0 ; 内循环,先循环后判断
00000024 75 F5 jnz inlp ; 内循环结束处
00000026 EB EC jmp again ; 再次判断
00000028 46 next: inc esi ; 继续对后续字符进行判断处理
00000029 EB E4 jmp outlp ; 外循环结束处
0000002B B8 00000000 R done: mov eax,offset string ; 显示处理后的字符串
00000030 E8 00000000 E call dispmsg
exit 0
end start
Microsoft (R) Macro Assembler Version 6.15.8803 08/18/07 20:49:41
eg0413.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 00000016 Para Public 'DATA'
_TEXT . . . . . . . . . . . . . 32 Bit 0000003C 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
again . . . . . . . . . . . . . L Near 00000014 _TEXT
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 0000002B _TEXT
inlp . . . . . . . . . . . . . . L Near 0000001B _TEXT
next . . . . . . . . . . . . . . L Near 00000028 _TEXT
outlp . . . . . . . . . . . . . L Near 0000000F _TEXT
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
string . . . . . . . . . . . . . Byte 00000000 _DATA
0 Warnings
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -