李全杰 发表于 2015-3-11 17:54:48

关于第6章的最后一题小虾编了段 大侠们看对么,望指点迷津~

编写CODE段中的代码,用PUSH指令将A段中的前8个字型数据,逆序存储到B段中

程序如下:

assume cs:code,ds:a,ss:b

a segment
   dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh            
a ends

b segment
   dw 0,0,0,0,0,0,0,0               
b ends

code segment

start:mov ax,a
      mov ds,ax    ;定义数据
      mov ax,b
      mov ss,ax
      mov sp,24    ;定义栈空间               

                mov bx,0
                mov cx,8   ;有8个数据,所以循环8次
               
S:      push ds: ;入栈
      add bx,2   ;加2指向下一个字型数据
                loop s       ;循环
               
          mov ax,4c00h
      int 21h               
               
code ends

end start   ///
////////////////
我不知道以上栈定义是不是有问题呀,
还有第一句的   ds:a,ss:b   是不是多余的呀?看还有木有问题? 谢谢 感谢!      

Seely 发表于 2015-3-11 22:35:22

mov sp,24
改成
mvo sp,16

因为b段为栈段
b segment
   dw 0,0,0,0,0,0,0,0               
b ends
共8个字,16个字节。
栈为空,sp指向16。(这里如果不明白参考问题3.6的分析)
别的没有错误

李全杰 发表于 2015-3-11 23:28:14

Seely 发表于 2015-3-11 22:35
mov sp,24
改成
mvo sp,16


嗯 tks{:7_113:}
页: [1]
查看完整版本: 关于第6章的最后一题小虾编了段 大侠们看对么,望指点迷津~