📄 02.lst
字号:
Microsoft (R) Macro Assembler Version 6.11 11/15/07 22:31:19
F:\课程\aaa\souce\02.asm Page 1 - 1
0000 data segment
0000 70 6C 65 61 73 65 message1 db 'please put into string 1',13,10,'$'
20 70 75 74 20 69
6E 74 6F 20 73 74
72 69 6E 67 20 31
0D 0A 24
001B 70 6C 65 61 73 65 message2 db 'please put into string 2',13,10,'$'
20 70 75 74 20 69
6E 74 6F 20 73 74
72 69 6E 67 20 32
0D 0A 24
0036 4D 41 54 43 48 0D message3 db 'MATCH',13,10,'$'
0A 24
003E 4E 4F 4D 41 54 43 message4 db 'NOMATCH',13,10,'$'
48 0D 0A 24
0048 32 00 seg1 db 50,?,50 dup(?)
0032 [
00
]
007C 1E 00 seg2 db 30,?,30 DUP(?)
001E [
00
]
009C data ends
0000 code segment
assume cs:code,ds:data,es:data
0000 start:
0000 B8 ---- R mov ax,data
0003 8E D8 mov ds,ax
0005 8E C0 mov es,ax
0007 BA 0000 R mov dx,offset message1
000A B4 09 mov ah,09h
000C CD 21 int 21h
000E BA 0048 R mov dx,offset seg1
0011 B4 0A mov ah,0ah
0013 CD 21 int 21h
0015 BA 001B R mov dx,offset message2
0018 B4 09 mov ah,09h
001A CD 21 int 21h
001C BA 007C R mov dx,offset seg2
001F B4 0A mov ah,0ah
0021 CD 21 int 21h
0023 B8 0048 R mov ax,offset seg1
0026 BB 007C R mov bx,offset seg2
0029 B9 000A mov cx, 10; 初步设定cx的外部循环的次数
002C 83 C0 02 add ax,2
002F 8B F0 mov si,ax;将si指向输入字符的头
0031 83 C3 02 add bx,2
0034 8B FB mov di,bx;将di指向key的头
0036 53 push bx;保存这个指针,后面会用到
0037 FC cld ;比较方向为正
0038 8B C1 L2: mov ax,cx ;保存外部的cx值
003A 8B D6 mov dx,si
003C B5 00 mov ch,0
003E 8A 0E 007D R mov cl,[seg2+1];key的长度给cx,来进行比较
0042 F3/ A6 repe cmpsb;字符比较
0044 74 12 jz L1;若比较完的时候发现相等zf=1,就表示匹配
0046 8B F2 mov si,dx
0048 46 inc si; 要是每次比较完不相等zf=0,就将si下移
0049 5F pop di; 将di重新指向key的开始
004A 57 push di;并将di保存,下次使用
004B 8B C8 mov cx,ax ;将外部cx的值重新拿出来
004D E2 E9 loop L2 ;回去并重新开始
004F BA 003E R L4: mov dx,offset message4
0052 B4 09 mov ah,09h
0054 CD 21 int 21h
0056 EB 07 jmp L3 ;输出不匹配,并退出
0058 BA 0036 R L1: mov dx,offset message3
005B B4 09 mov ah,09h
005D CD 21 int 21h ;输出匹配
005F B4 4C L3: mov ah,04ch
0061 CD 21 int 21h
0063 code ends
end start
Microsoft (R) Macro Assembler Version 6.11 11/15/07 22:31:19
F:\课程\aaa\souce\02.asm Symbols 2 - 1
Segments and Groups:
N a m e Size Length Align Combine Class
code . . . . . . . . . . . . . . 16 Bit 0063 Para Private
data . . . . . . . . . . . . . . 16 Bit 009C Para Private
Symbols:
N a m e Type Value Attr
L1 . . . . . . . . . . . . . . . L Near 0058 code
L2 . . . . . . . . . . . . . . . L Near 0038 code
L3 . . . . . . . . . . . . . . . L Near 005F code
L4 . . . . . . . . . . . . . . . L Near 004F code
message1 . . . . . . . . . . . . Byte 0000 data
message2 . . . . . . . . . . . . Byte 001B data
message3 . . . . . . . . . . . . Byte 0036 data
message4 . . . . . . . . . . . . Byte 003E data
seg1 . . . . . . . . . . . . . . Byte 0048 data
seg2 . . . . . . . . . . . . . . Byte 007C data
start . . . . . . . . . . . . . L Near 0000 code
0 Warnings
0 Errors
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -