|
80鱼币
1:一个程序能定义几个栈段?
2:定义栈的时候如题:默认几经关联SS了
scoke segment
dw 0,0,0,0,0
scoke ends
这里换成DD,或db能不能?等下POP,PUSH的时候能运行不,结果是报错还是?
3: 不是说ES是空闲的段寄存器吗?能不能用 ES来代替SS,
4:BP我记得是默认SS的,但是我看别的代码 比如 mov ax,ds:[bx+bp], 这里面的 BP是什么?只向的是哪里?是一个地址吗?我说不清楚,帮我解释下……~~
5:
scoke segment
dw 0,0,0,0,0
dw 1,1,1,1,1,
scoke ends
如果我没定义 dw 1,1,1,1,1, 这一行的话,是定义了5个0,这时候如果假如是一个完整的程序,没其他段什么的,我要查看我定义的这5个0是用DEBUG是D 0:0 吗, 0不容易看,就用 DEBUG看我定义的5个1号了 要去哪里看呢, 。。。。。。。。。。。
6:能不能像我 这样子定义?
scoke segment
dw 0,0,0,0,0
dw 1,1,1,1,1,
dw 12,12,12
scoke ends
我这样子是不是 相当于 初始化栈了?指定了栈里面要存放 的数据/?这是对的还是错的
7:LOOP 这种 循环命令的 手脚能不能 伸到 栈段里面?就是把标号 放在 栈段里的任何一行数据旁边
8:LOOP 指令, 我看人家的代码一次写好几个CX,我怎么才能知道那个和那个配对呢? 比如C语言的循环就近配对原则,这个汇编LOOP循环是什么原则。、?
其他没什么问题了,问别人说这个自己实验好,可我就算自己实验了也就是闭门造车的结果。还是提问好了,:handshake,鱼BI 多,送给帮我解答的人
|
最佳答案
查看完整内容
1 我不知道
2 首先我改正一下,如果你只是定义这么一个数据段,在代码中没有把SS和Stack关联,你push时候并没有push进stack中。如果是定义成db时没有错,而且push进去。
3 不能用ES代替SS,因为你push的时候是把数据push进 SS:SP地址中。如果你用SS替换成ES,那你怎么使用push,pop命令
|