求换个方法..太蛋疼了
判断STR2是不是STR1的子串datasg segment
STR1 db 32, ?, 32 dup (?)
STR2 db 16, ?, 16 dup (?)
INFO1 db 'Input Long Str:$'
INFO2 db 'Input Short Str:$'
INFO3 db 'yes$'
INFO4 db 'no$'
INFO5 db 'error$'
INDEX dw 2
datasg ends
;==============================================================================================================
codesg segment
assume cs:codesg, ds:datasg
start: mov ax, seg STR1
mov ds, ax
mov dx, offset INFO1 ;显示提示信息1
mov ah, 9
int 21h
mov dx, offset STR1
call GetStr ;输入长字符串
call NewLine ;换行
mov dx, offset INFO2 ;显示提示信息2
mov ah, 9
int 21h
mov dx, offset STR2
call GetStr ;输入短字符串
call NewLine ;换行
;取2个字符串长度(cl) = 长字符串长度, (dl) = 短字符串长度
mov bh, STR1 + 1 ;取得长字符串长度
mov bl, STR2 + 1 ;取得短字符串长度
;合法验证
mov dx, offset INFO5 ;初始化为错误提示
or bh, bh
jz ok1
or bl, bl
jz ok1
cmp bl, bh
ja ok1
mov ah, 0 ;初始化为no状态
mov si, 1
xor ch, ch
bj_next1: cmp bh, bl
jb bj_next3
dec bh
mov di, si
inc si
mov INDEX, 1
mov cl, bl
bj_next2: inc di
inc INDEX
push si
mov si, INDEX
mov al, STR2
pop si
cmp al, STR1
jnz bj_next1
loop bj_next2
mov ah, 1
bj_next3: mov dx, offset INFO4
or ah, ah
jz ok1
mov dx, offset INFO3
ok1: mov ah, 9
int 21h
ok: xor al, al
mov ah, 4ch
int 21h
;名称:GetStr
;功能:接收字符串
;入口参数:(dx) = 缓冲区首地址
;出口参数:无
GetStr proc near
push ax
mov ah, 0ah
int 21h
pop ax
ret
GetStr endp
;名称:NewLine
;功能:换行
;入口参数:无
;出口参数:无
NewLine proc near
push ax
push dx
mov ah, 2
mov dl, 0dh
int 21h
mov dl, 0ah
int 21h
pop dx
pop ax
ret
NewLine endp
codesg ends
;==============================================================================================================
end start
:mad:表示看惯了高级语言 来看汇编有点不习惯了 得找个时间复习下了,都忘了 我也是忘的快差不多了,但又得拿起来! 我想把bcd变量中2个字节的bcd码转化为4个字节的bcd码,请懂的帮忙
code segment
assume cs:code
bcd db 12h,34h
bcd2 db 0,0,0,0
start: mov al,bcd
接下来怎么编? Sanda_Chang 发表于 2013-11-14 22:43 static/image/common/back.gif
我也是忘的快差不多了,但又得拿起来!
我想把bcd变量中2个字节的bcd码转化为4个字节的bcd码,请懂的帮忙
code segment
assume cs:code
bcd db 12h,34h
bcd2 db 0,0,0,0
start: mov al,bcd
接下来怎么编? 我想把bcd变量中2个字节的bcd码转化为4个字节的bcd码,请懂的帮忙
code segment
assume cs:code
bcd db 12h,34h
bcd2 db 0,0,0,0
start: mov al,bcd
接下来怎么编? {:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:},,,,,,,,,,,, 激动人心,无法言表! 激动人心,无法言表! 激动人心,无法言表! 帮顶。。。。。
页:
[1]