嗜血灵异狂 发表于 2011-12-6 06:42:12

百思不得骑姐

assume cs:code, ds:data, ss:stark
data segment
dw 0123h,0456h,0789h,0321h,0654h,0987h
data ends
stark segment
dw 0,0,0,0,0,0
stark ends
code segment

start:mov ax,data
   mov ds,ax
   mov bx,0
   mov sp,0
   
mov cx,6 ;使用6次循环
s: mov ss,ds:
   add bx,2
   add bx,2
loop s

mov ax,4c00h
int 21h
code ends
end start

我想把数据段的数据放到栈中   可是debug 调试的时候   CPU 第一条指令指向20个字节后   但是更气人的是第一条指令竟然是CS的值放入到了ax中    大虾帮我看看那里有问题谢谢了

just_so_so 发表于 2011-12-6 08:51:55

楼主你堆栈没用好 你对sp怎么个用法还不是很清楚   还有循环里面只要用一次add bx,2就够了

just_so_so 发表于 2011-12-6 08:54:47

建议楼主把 甲鱼哥的(汇编零基础入门视频)讲堆栈的视频多看两遍 然后自己再回过头来找出其中的错误

api 发表于 2011-12-6 12:15:19

mov ax,data,这时cs:ip指向data段,没有问题啊

100531319 发表于 2011-12-6 13:16:57

api 发表于 2011-12-6 12:15 static/image/common/back.gif
mov ax,data,这时cs:ip指向data段,没有问题啊

大哥 ,栈那里出问题了,好不好,还没问题{:5_99:}

ztc123 发表于 2011-12-6 14:57:26

mov ss,ds:
这里将数据段的数放在堆栈段寄存器里是什么意思?

api 发表于 2011-12-6 18:29:33

100531319 发表于 2011-12-6 13:16 static/image/common/back.gif
大哥 ,栈那里出问题了,好不好,还没问题

代码我没细看,只看了楼主的问题。不过现在看这代码和提出的问题,楼主头脑很乱啊,跟我以前学习指针一样。

100531319 发表于 2011-12-6 19:47:21

api 发表于 2011-12-6 18:29 static/image/common/back.gif
代码我没细看,只看了楼主的问题。不过现在看这代码和提出的问题,楼主头脑很乱啊,跟我以前学习指针一样 ...

不是乱,你就不懂了把,乱能骑姐{:5_106:},你就不行了吧,这叫NB {:5_109:}

kane080824 发表于 2011-12-6 22:11:24

{:7_176:}楼主能把代码写成这样也不容易,别骑姐了骑哥吧,呵呵.至少有两个问题:1大概不理解assume和mov seg.reg,ax的关系,2,对栈指针sp不太了解
请认真看小甲鱼哥哥的视频
页: [1]
查看完整版本: 百思不得骑姐