. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  关于监测点3.2的第2题的问题  [待解决] 回复[ 7次 ]   点击[ 578次 ]  
wzhh1986
[帖 主]   [ 发表时间:2010-12-03 00:50 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:2
注册日期:2010-12-02 13:35
题目是这样的:
补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序复制到20000H-2000FH中。

mov ax,2000H
mov ds,ax
____________
____________
____________

pop [E]
pop [C]
pop [A]
pop [8]
pop [6]
pop [4]
pop [2]
pop [0]

我在横线那填上了以下内容:
mov ax,1000H
mov ss,ax
mov sp,000FH

为了验证自己的结果是否正确,我在debug中查看了内存地址10000H-1000FH的内容并记录下来,然后在内存地址10010F处开始键入以上汇编代码,最后我设置段寄存器CS=1000H,ip=0010F,设置完后我想用r命令想看下cs、ip是否如已设置成想要的数,结果键入r后就退出了debug,还原为dos窗口,这是怎么回事,困惑得很,求高手指点,不胜感激!
wzhh1986
[第1楼]   [ 回复时间:2010-12-03 19:20 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:2
注册日期:2010-12-02 13:35
“然后在内存地址10010F处开始键入以上汇编代码”上面内容中的“10010F”中应该更正为“10010H”,一时不查错写了。
wzhh1986
[第2楼]   [ 回复时间:2010-12-03 19:22 ]   [引用]   [回复]   [ top ] 
荣誉值:6
信誉值:2
注册日期:2010-12-02 13:35
又发现“最后我设置段寄存器CS=1000H,ip=0010F”这里的ip设置也写错了,应该更正为“ip=0010H”
goodxiaowan
[第3楼]   [ 回复时间:2010-12-17 12:11 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-23 12:24
首先,未存数据,所以浅是空的,ip应该为0010h.
浅的机制还是未真的明白!
pop [E] 
pop [C] 
pop [A] 
pop [8] 
pop [6] 
pop [4] 
pop [2] 
pop [0] 

改为
pop [0]
pop [2]
pop [4]
pop [6]
pop [8]
pop [a]
pop [c]
pop [e]
goodxiaowan
[第4楼]   [ 回复时间:2010-12-17 12:18 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-05-23 12:24
上面的
pop [E]  
pop [C]  
pop [A]  
pop [8]  
pop [6]  
pop [4]  
pop [2]  
pop [0] 
是对的!本人也犯了一个严重错误!也陷入浅的泥潭中!
yin.viky
[第5楼]   [ 回复时间:2010-12-19 17:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:4
注册日期:2010-10-31 08:38
mov ax,1000H 
mov ss,ax 
mov sp,0000H 
栈是满的,sp应该为0000H
出栈时,sp慢慢增加到000FH
xiahe147
[第6楼]   [ 回复时间:2010-12-21 18:12 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-05-30 21:46
记住栈有后进先出的原则!
chengshan
[第7楼]   [ 回复时间:2016-04-14 23:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2016-03-27 21:52
回复:[第5楼]
------------------
mov ax,1000H  
mov ss,ax  
mov sp,0000H  
栈是满的,sp应该为0000H 
出栈时,sp慢慢增加到000FH 出栈时SP慢慢增加,当栈里所有数据出栈后SP应该为10 而不是000FH
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved