汇编语言的一些问题。已知数据段定义如下: data segment x db 16 array db 1,5,8,16,18,21 data ends
从数组array中删除掉值等于x的元素。我编写了以下程序可使为什么运行会出错?datasegmentxdb16arraydb1,5,8,16,18,21dataends从...
从数组array中删除掉值等于x的元素。
我编写了以下程序可使为什么运行会出错?
data segment
x db 16
array db 1,5,8,16,18,21
data ends
从数据ARRAY中删除掉值等于X的元素。
code segment
main proc far
assume cs:code ds:data
start:
push ds
mov ax,0
push ax
mov cx ,5
mov ax ,x
mov si ,offset array
mov bx,0 (存放数组下标)
m:
cmp ax,[si]
jne r (结果不相等进行转移R)
je s (结果相等转移S)
r:
inc si(SI数据+1)
inc bx(数组下标+1)
jmp m
s:
SUB cx,bx
inc si
mov array[bx],[si]
inc bx
loop s
ret
main endp
code ends
end start 展开
我编写了以下程序可使为什么运行会出错?
data segment
x db 16
array db 1,5,8,16,18,21
data ends
从数据ARRAY中删除掉值等于X的元素。
code segment
main proc far
assume cs:code ds:data
start:
push ds
mov ax,0
push ax
mov cx ,5
mov ax ,x
mov si ,offset array
mov bx,0 (存放数组下标)
m:
cmp ax,[si]
jne r (结果不相等进行转移R)
je s (结果相等转移S)
r:
inc si(SI数据+1)
inc bx(数组下标+1)
jmp m
s:
SUB cx,bx
inc si
mov array[bx],[si]
inc bx
loop s
ret
main endp
code ends
end start 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询