求助一道汇编语言问题!3、从无序数列中删除一个元素 实验内容在BUFFER为首址的内存区中存放了一个无序字符串,其长度存放在第一个字节单元,在KEY单元内存放了要删除的一个字符,查找此无
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/01 20:56:56
求助一道汇编语言问题!3、从无序数列中删除一个元素 实验内容在BUFFER为首址的内存区中存放了一个无序字符串,其长度存放在第一个字节单元,在KEY单元内存放了要删除的一个字符,查找此无
求助一道汇编语言问题!
3、从无序数列中删除一个元素
实验内容
在BUFFER为首址的内存区中存放了一个无序字符串,其长度存放在第一个字节单元,在KEY单元内存放了要删除的一个字符,查找此无序字串,若找到则删除并作相应调整,若字串中无此字符则在FLAG单元内置FFH标志.
data segment
buffer db 0cH,'wcsegmentend'
key db 'm'
flag db ?
error db -1
data ends
stack segment para stack 'stack'
db 100 dup(0)
stack ends
code segment
assume cs:code,ds:data,ss:stack
main proc far
start: push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
lea bx,key
mov al,[bx]
lea bx,buffer
mov cx,[bx]
jmp A4
A5: dec cx
jne A4
jmp A2
A4: inc bx
cmp [bx],al
jne A5
jmp A3
A2: mov dl,error
mov flag,dl
ret
A3: mov ah,[bx+1]
mov [bx],ah
inc bx
dec cx
jne A3
ret
main endp
code ends
end main
题目和编程如图所示,可我运行的时候却又跳出了dubug,这是怎么回事?
求助一道汇编语言问题!3、从无序数列中删除一个元素 实验内容在BUFFER为首址的内存区中存放了一个无序字符串,其长度存放在第一个字节单元,在KEY单元内存放了要删除的一个字符,查找此无
DATA SEGMENT
BUFFER DB 0CH, 'WCSEGMENTEND'
KEY DB 'A'
FLAG DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
MAIN PROC FAR
START:
PUSH DS
MOV AX, 0
PUSH AX
MOV AX, DATA
MOV DS, AX
;-------------------------
MOV AL, KEY
LEA BX, BUFFER
MOV CL, [BX]
A4:
INC BX
CMP [BX], AL
JE A3
DEC CL
JNE A4 ;循环查找
MOV FLAG, -1
RET
;-------------------------
A3:
MOV AH, [BX + 1]
MOV [BX], AH
INC BX
DEC CL
JNE A3
MOV FLAG, 0
RET
;-------------------------
MAIN ENDP
CODE ENDS
END MAIN