鱼C论坛

 找回密码
 立即注册
查看: 4191|回复: 14

[学习笔记] 《零基础入门学习汇编语言》实验二

[复制链接]
发表于 2017-6-29 22:39:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shuiyu 于 2017-6-29 22:45 编辑

小白刚学,不对的请各位大佬指正,谢谢

由于鱼C论坛的回档,我昨天的笔记消失了.... 所以今天先补回昨天的两个笔记。

实验二


(1)使用DEBUG,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。  (红色的为填空)

mov ax,ffff

mov ds,ax

mov ax,2200

mov ss,ax

mov sp,0100

mov ax,[0]    ;ax= 5BEAH

add ax,[2]    ;ax= 5CCAH

mov bx,[4]    ;bx= 30F0H

add bx,[6]    ;bx= 6027H

push ax       ;sp= 00FEH ,修改的内存单元地址是 2200:00FE 内容为 5CCAH

push bx       ;sp= 00FCH ,修改的内存单元地址是 2200:00FC 内容为 6027H

pop ax        ;sp= 00FEH ,ax= 6027H

pop bx        ;sp= 0100H ,bx= 5CCAH

push [4]      ;sp= 00FEH ,修改的内存单元地址是 2200:00FE 内容为 30F0                 内容是根据前面的mov bx,[4]    ;bx= 30F0H 得到的因为都是[4]这个内存单元的数据

push [6]      ;sp= 00FCH ,修改的内存单元地址是 2200:00FC 内容为 2F37                内容是根据前面的add bx,[6]    ;bx= 6027H  得到的,用结果减掉前面bx的值就得到内容了

我的一些操作见下图:
1.PNG
2.PNG

(2)
仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:F中的内容会发生改变?
书本给出的答案
答:因为在debug使用T等指令引发了中断造成的,中断过程使用当前栈空间存放cpu关键数据,所以,你的栈里就有些不是你操作的数据了。  
这个问题后面会学到,不过这里也要有个印象,因为如果是在中断过程中压栈是栈越界的话,在windows下的命令窗口会强制关闭的。这个可能在你跟踪一些程序的时候会遇到,到时候有个思考方向。

自己的理解:当使用T命令引起中断,这其实也是一个异常(就是出错的意思);而一旦发生异常,CPU会调用某些程序,某些命令或机制去处理这些异常,或许也不是CPU主动的去调用,也可能是被动的要去调用执行。调用这些肯定要占用内存,刚好我们使用的内存段就在这;所以我们的内存段被占用了,从而发生了改变。

谢谢小甲鱼带来的视频教程,感谢!!


   
本节结束,多谢览阅!
小白刚学,不对的请各位大佬指正,谢谢

评分

参与人数 1鱼币 +6 收起 理由
小甲鱼 + 6 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-9 14:40:05 | 显示全部楼层
本帖最后由 BellXu 于 2017-7-9 14:42 编辑

为什么我内存里FFFF:0000开始的内容不一样呢?
TIM截图20170709143821.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-9 15:10:00 | 显示全部楼层
BellXu 发表于 2017-7-9 14:40
为什么我内存里FFFF:0000开始的内容不一样呢?

每个计算机的内存地址都不一样,王爽汇编语言前面提到过。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-9 23:44:34 | 显示全部楼层
BellXu 发表于 2017-7-9 14:40
为什么我内存里FFFF:0000开始的内容不一样呢?

每一个电脑的内存里的数据都不一定是一样的哦,所以我们的答案都是不一样的,这题没有标准答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-7-10 20:05:23 | 显示全部楼层
我是大神哥哥 发表于 2017-7-9 15:10
每个计算机的内存地址都不一样,王爽汇编语言前面提到过。

明白了 感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-10 20:05:56 | 显示全部楼层
shuiyu 发表于 2017-7-9 23:44
每一个电脑的内存里的数据都不一定是一样的哦,所以我们的答案都是不一样的,这题没有标准答案

明白了 感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-15 17:30:32 | 显示全部楼层
       为什么2000:0~2000:F中的内容会发生改变?        这个问题我也思考了一下,首先栈段是自己安排的,CPU并不会由于这种安排,就在执行push、pop等栈操作指令时自动地将我们定义的栈段当作栈空间来访问。这段话,可以在王爽汇编语言第三版,第三章 栈段   找到。
       可想而知,当时设计人员为了不使出错,所以出现中断这么一个说法。具体想要了解得更清楚,所以需要学习到中断哪里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-15 22:32:26 | 显示全部楼层
我是大神哥哥 发表于 2017-7-15 17:30
为什么2000:0~2000:F中的内容会发生改变?        这个问题我也思考了一下,首先栈段是自己安排的 ...

嗯嗯毕竟现在知识有限,自己也不好多加推断和评论
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-27 10:16:04 | 显示全部楼层
为什么我的 mov ax,[0] 老是提示错误啊[img]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-27 13:54:13 | 显示全部楼层
华灯初上7923 发表于 2017-10-27 10:16
为什么我的 mov ax,[0] 老是提示错误啊

问题解决了吗?没有的话截图发上来我帮你看看呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-31 21:18:09 | 显示全部楼层
shuiyu 发表于 2017-10-27 13:54
问题解决了吗?没有的话截图发上来我帮你看看呗

好像说什么是软件版本之类的问题?   ERROR- -09E7    我至今搞不明白课本上例程的相关软件怎么弄。。。老是各种非法命令、、、
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-31 21:22:12 | 显示全部楼层
shuiyu 发表于 2017-10-27 13:54
问题解决了吗?没有的话截图发上来我帮你看看呗

[img][/img]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-31 21:22:51 | 显示全部楼层
shuiyu 发表于 2017-10-27 13:54
问题解决了吗?没有的话截图发上来我帮你看看呗

我用QQ的快捷键截图了  但好像传不上来啊。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-1 16:49:27 | 显示全部楼层
华灯初上7923 发表于 2017-10-31 21:22
我用QQ的快捷键截图了  但好像传不上来啊。。。

额。。。你是在32位系统里面运行的吗?我用的是XP的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-2 15:24:42 | 显示全部楼层
shuiyu 发表于 2017-11-1 16:49
额。。。你是在32位系统里面运行的吗?我用的是XP的

后来加进群里  有一位老铁帮我解决了  兄弟  加个Q  以后和你探讨探讨 792355718
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 00:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表