汇编语言 王爽(第三版) 实验3 编程、编译、连接、跟踪
来源:互联网 发布:胖子冬天穿衣搭配知乎 编辑:程序博客网 时间:2024/05/02 20:25
已做好的准备
t1.asm文件已保存到C盘根目录下
masm 5.0 需要自己从网上下载,然后安装,已保存到C盘根目录下
执行过程中问题的出现与解决
进入DOS方式,显示
C:\DOCUME~1\ADMINI~1>
,此时如何进入C盘根目录?在后面输入cd..
,会显示C:\DOCUME~1
,即此时已回退到Documents文件夹,再次输入cd..
,会显示C:\>
,即此时到达C盘根目录,输入cd masm
,显示C:\MASM>
,即进入C盘根目录下的MASM文件夹;编译过程,
Source filename [.ASM]
输入t1
,按下几个ENTER,出现Unable to open input file: t1.ASM
,问题在哪?仔细看了书,发现只有当asm文件在MASM文件夹下,才可以仅输入文件名,更改输入c:\t1.asm
,编译成功;Debug中
-d ds:10 18
是指查看1000:10~1000:18的内容此实验源程序中的程序部分:
mov ax,2000H mov ss,ax mov sp,0 add sp,10 pop ax pop bx push ax push bx pop ax pop bx mov ax,4c00H int 21H
根据我对程序的理解,程序的前四行是将2000H:0~2000H:9设置为栈,此时栈顶SS:SP指向2000AH,此时栈为空。第一个指令,pop ax,是弹出一个栈元素,从数据结构的学习中考虑,这样会导致错误,然而实际上并没有问题。
(摘自网络)
栈空间里没有内容,此时能弹堆栈?
首先说什么是栈空间,栈空间无非是一段由SS:SP指示的内存空间而已,一般情况下我们能够用栈操作指令访问它,当然,我们也可以用访问内存地址的任何一种合理方式访问这段空间。其次,我们说 栈空 表明的意思是:栈顶设置之初,我们没有栈操作的时候,这段空间的数据我们是未知的,所以通常也是没有用的,但是并不代表这时栈顶SS:SP所指向的内存字单元中没有数据!再有一点:无论是push还是pop操作,栈的操作在任何情况下都是有效的(但不一定在任何情况下都是合理的,对于不合理的栈操作正如问题 1 的回答中所讲,会有操作系统的干预。)
- 汇编语言 王爽(第三版) 实验3 编程、编译、连接、跟踪
- 汇编语言 王爽(第三版)实验十一
- 汇编语言 王爽(第三版)实验十三
- 汇编语言 王爽(第三版)实验十五
- 汇编语言 王爽(第三版)实验十六
- 汇编语言 王爽(第三版)实验十七
- 汇编语言 第三版 王爽 实验9 根据材料编程
- 王爽 汇编语言 第三版 实验9 根据材料编程
- 实验3 编程、编译、链接、跟踪
- 王爽《汇编语言》(第三版)实验8解析
- 汇编语言 第三版 王爽 实验四
- 王爽-汇编语言第三版实验7
- 王爽 《汇编语言》第三版 实验9
- 汇编语言(第三版)实验1-17
- 汇编语言 第三版 王爽 实验6 更改大写字母
- 王爽 汇编语言 第三版 实验10 编写子程序
- 王爽 汇编语言 第三版 实验14 访问 CMOS RAM
- 汇编语言 第三版 王爽 实验七 独立完成
- 像数据科学家一样思考
- HDU 5833 Zhu and 772002 高斯消元
- innodb_flush_method取值策略和案例
- Gabor滤波器
- PHP获取文件扩展名的方法
- 汇编语言 王爽(第三版) 实验3 编程、编译、连接、跟踪
- 多元最大似然估计函数
- 计算机图形学(三)_图元的属性_16_ 反走样_3_子像素的加权掩模
- 计算机视觉国内外研究学者、机构主页
- 预处理 宏及编译
- Ubuntu 安装 boost 库
- 总结struts2 Action的四种实现方式
- 2012年南海初中竞赛 数列
- canvas闹钟