酸辣小白菜 发表于 2017-8-2 10:08:08

实验五 (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

ba21 发表于 2017-8-2 10:09:48

s0: push ds:
            inc bx
            loop s

这里的s到哪里哟?

酸辣小白菜 发表于 2017-8-2 10:15:40

S0漏掉了一个0

f393 发表于 2017-8-2 10:16:38

本帖最后由 f393 于 2017-8-2 10:23 编辑

等会,add ss:,ax   ,你是怎么编译出来的?

酸辣小白菜 发表于 2017-8-2 10:24:26

我已经加上了但是DEBUG 调试的时候很迷,我不会验证它的正确性

f393 发表于 2017-8-2 10:28:19

f393 发表于 2017-8-2 10:16
等会,add ss:,ax   ,你是怎么编译出来的?

我的电脑好奇怪……

f393 发表于 2017-8-2 10:29:52

酸辣小白菜 发表于 2017-8-2 10:24
我已经加上了但是DEBUG 调试的时候很迷,我不会验证它的正确性

你看栈段的数据啊?

f393 发表于 2017-8-2 10:35:33

f393 发表于 2017-8-2 10:29
你看栈段的数据啊?

用d来查看内存中的数据

酸辣小白菜 发表于 2017-8-2 10:41:26

最后不知道为啥直接没了   

酸辣小白菜 发表于 2017-8-2 10:48:29

f393 发表于 2017-8-2 10:29
你看栈段的数据啊?

栈段里的数据不对

酸辣小白菜 发表于 2017-8-2 10:54:06

f393 发表于 2017-8-2 10:16
等会,add ss:,ax   ,你是怎么编译出来的?

你能运行么?   
程序能不能看出哪里错了

f393 发表于 2017-8-2 10:57:21

酸辣小白菜 发表于 2017-8-2 10:48
栈段里的数据不对

cx有问题,cx在第一次循环完毕后就是0000了,第二次循环先cx-1,在循环。0000-1得到的是FFFF,所以会执行10000次s1的内容

f393 发表于 2017-8-2 10:59:27

酸辣小白菜 发表于 2017-8-2 10:54
你能运行么?   
程序能不能看出哪里错了

我这边add ss:,ax这条过不了编译器

云启 发表于 2017-8-2 18:35:20

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]
查看完整版本: 实验五 (5)