汇编语言(三)内存拷贝问题 以及 汇编数据 不能以字母打头
来源:互联网 发布:淘宝怎么凑单 编辑:程序博客网 时间:2024/06/14 19:48
在读 王爽的 《汇编语言》5.3小节 。 主要讲的 是 如何 将 ffff:0006 单元的内容 * 3 保存下来。
在看到这个问题,我并没有 急于 去看 下面的 代码,而是 自己 去 写了一个 asm:
assume cs:codesg;将 ffff:0006 单元的 内容 * 3codesg segmentmov ax,ffffHmov ds,axmov bx,6mov ax,[bx]mov cx,2s:add ax,[bx]loop smov ax,4c00Hint 21Hcodesg endsend
1.这段代码 编译 不过去,因为 汇编源代码中的数据不能以字母打头,所以得将 ffffh 修改成 0ffffh
2.其次 在 用 debug 跟踪 这个 exe 的时候,发现 程序 结果 不对。错误 出现在 mov ax,[bx] 和 add ax,[bx] 代码中。
mov ax,[bx] 是 将 ffff:6 ~ ffff:7 内存单元中的 内容 拷贝至 ax, 而不是 拷贝 ffff:6 单元。
add ax,[bx] 跟上面代码 错的 原因一致。
3.以及 masm 处理 mov ax,[3] 当做 mov ax,3 来看待。。。这个问题。代码中 不存在.
下面给出 正确的 汇编代码:
assume cs:codesg;将 ffff:0006 单元的 内容 * 3codesg segmentmov ax,0ffffHmov ds,axmov bx,6mov al,[bx]mov ah,0mov dx,0mov cx,3s:add dx,axloop smov ax,4c00Hint 21Hcodesg endsend
0 0
- 汇编语言(三)内存拷贝问题 以及 汇编数据 不能以字母打头
- 在汇编源程序中,数据不能以字母开头
- 汇编(三)汇编语言的指令格式
- 实际使用中格式化输出以 % 打头,后跟以一个控制输出格式的字母。
- 汇编学习历程(内存定位与数据拷贝)
- 《汇编语言》学习(三)内存访问
- 内存学习(三)深拷贝,浅拷贝,完全拷贝
- eclipse中读取json配置文件,相对路径不能以斜杠打头。
- 关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题(上)
- 关于复杂数据存储的问题--基础篇:数组以及浅拷贝与深拷贝的问题(下)
- 【转载】\t\tAutoCAD2008系统变量一览表(2 字母打头(D))
- 【转载】\t\tAutoCAD2008系统变量一览表(3 字母打头(E F G H))
- 【转载】\t\tAutoCAD2008系统变量一览表(4 字母打头(I L))
- 【转载】\t\tAutoCAD2008系统变量一览表(6 字母打头(S T))
- 【转载】\t\tAutoCAD2008系统变量一览表(7 字母打头(U V W X Z))
- 【转载】\t\tAutoCAD2008系统变量一览表(1 字母打头(3 A B C ))
- 51汇编编译,注释,以及查看内存问题
- 汇编基础 笔记(《汇编语言》)
- java获取cpu、内存、硬盘信息
- Java 7之基础 - 强引用、弱引用、软引用、虚引用
- 算法复习:最大团问题(回溯法和分支限界法)
- Linux系统中采用Atlas+Keepalived实现MySQL读写分离、负载均衡
- C++中 #ifdef 和#endif的作用
- 汇编语言(三)内存拷贝问题 以及 汇编数据 不能以字母打头
- poj 2506 Tiling
- 逻辑斯蒂回归模型
- 做内心强大的女子:不念过往,不惧将来
- Activity启动模式解析
- 《欢乐颂》的引经据典
- Linux驱动学习(4-字符设备-自动创建字符设备并读写)
- iOS-沙盒(二)
- Android上仿IOS弹性ScrollView