实验五 (5)
这是我自己写的程序,用DEBUG 调试调不出来请大神看看程序对不对,麻烦改正
assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
c segment
db 0,0,0,0,0,0,0,0
c ends
code segment
start: mov ax,a
mov ds,ax
mov bx,0
mov ax,b
mov es,ax
mov bx,0
mov ax,c
mov ss,ax
mov sp,8
mov cx,8
s0: push ds:
inc bx
loop s
s1: mov ax ,es:
add ss:,ax
inc bx
loop s1
mov ax,4c00h
int 21h
code ends
end start s0: push ds:
inc bx
loop s
这里的s到哪里哟? S0漏掉了一个0 本帖最后由 f393 于 2017-8-2 10:23 编辑
等会,add ss:,ax ,你是怎么编译出来的? 我已经加上了但是DEBUG 调试的时候很迷,我不会验证它的正确性 f393 发表于 2017-8-2 10:16
等会,add ss:,ax ,你是怎么编译出来的?
我的电脑好奇怪…… 酸辣小白菜 发表于 2017-8-2 10:24
我已经加上了但是DEBUG 调试的时候很迷,我不会验证它的正确性
你看栈段的数据啊? f393 发表于 2017-8-2 10:29
你看栈段的数据啊?
用d来查看内存中的数据
最后不知道为啥直接没了 f393 发表于 2017-8-2 10:29
你看栈段的数据啊?
栈段里的数据不对 f393 发表于 2017-8-2 10:16
等会,add ss:,ax ,你是怎么编译出来的?
你能运行么?
程序能不能看出哪里错了 酸辣小白菜 发表于 2017-8-2 10:48
栈段里的数据不对
cx有问题,cx在第一次循环完毕后就是0000了,第二次循环先cx-1,在循环。0000-1得到的是FFFF,所以会执行10000次s1的内容 酸辣小白菜 发表于 2017-8-2 10:54
你能运行么?
程序能不能看出哪里错了
我这边add ss:,ax这条过不了编译器 assume cs:code
a segment
db 1,2,3,4,5,6,7,8
a ends
b segment
db 1,2,3,4,5,6,7,8
b ends
cb segment
db 0,0,0,0,0,0,0,0
cb ends
code segment
start:mov ax,a
mov ds,ax
mov ax,cb
mov es,ax
mov ax,b
mov ss,ax
mov sp,0
mov cx,4
mov bx, 0
s1: pop ax
add ax,
mov es:, ax
inc bx
inc bx
loop s1
mov ax,4c00h
int 21h
code ends
end start
修改了
页:
[1]