实验5 ,第5题
代码如下:assume cs:code
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 1,2,3,4,5,6,7,8
b ends
cc segment
dw 0,0,0,0,0,0,0,0
cc ends
code segment
start:
mov bx,16 //因为考虑到我下面用入栈的形式 所以我吧bx指向最后的子单元了
mov ax,a
mov ds,ax
mov ax,cc
mov ss,ax
mov sp,10h
mov ax,0
mov cx,8
s:
add ax,
add ax,
sub bx,2
push ax
loop s
mov ax,4c00h
int 21h
code ends
end start
为什么结果不对呢
结果为:47 00 43 00 3D 00 35 00-2B 00 1F 00 11 00 01 00
求大佬帮帮忙 小白刚接触
不用栈的就可以这是为什么呢 求大佬解释一下 是不是我那个 ss哪里不应该那么设置呢 。。。。我改过之后的
assume cs:code
a segment
dw 1,2,3,4,5,6,7,8
a ends
b segment
dw 1,2,3,4,5,6,7,8
b ends
cc segment
dw 0,0,0,0,0,0,0,0
cc ends
code segment
start:
mov bx,0
mov ax,a
mov ds,ax
mov ax,0
mov cx,8
s:
add ax,
add ax,
mov ,ax
add bx,2
push ax
loop s
mov ax,4c00h
int 21h
code ends
end start
本帖最后由 jackz007 于 2019-4-7 18:23 编辑
bx 指向加数,属于关键参数,不允许随意修改,既然修改了,结果也自然就跟着改变了,就应该欣然接受。
所以结论就是,bx = 0 不可更改,必须改回去。 jackz007 发表于 2019-4-7 17:26
bx 指向加数,属于关键参数,不允许随意修改,既然修改了,结果也自然就跟着改变了,就应该欣然接受 ...
能不能 帮我指一下第几行是第一行吗 。。。bx我是想让偏移量为0好指向第一个数据单元 start:
mov bx,16 ; 原代码是 movbx,0
. . . . . .
mov ax,0
mov cx,8
s:add ax,
add ax,
. . . . . . jackz007 发表于 2019-4-8 15:02
明白了那我第一个方法 用入栈的方式是不是就有点不妥了就只能是 用赋值的方式来进行啊 wzy199806 发表于 2019-4-8 15:18
明白了那我第一个方法 用入栈的方式是不是就有点不妥了就只能是 用赋值的方式来进行啊
一切取决于你的预期,就看你想要达到什么样的目的了。
页:
[1]