本章难度较大,
有比较麻烦的逻辑问题,
不过,我觉得更难的在于熟练掌握那些标志位的状况。
思考的成分不算太多,学习的时候,还是先背下来再说,
逻辑问题可以放到后面慢慢思考。
本章可是新内容最多的一章了。
呵呵,刚通过检测,睡觉去了。
祝大家都做个好梦!^_^...


- [dreamhk] 反汇编工具啊...很多 CASM32 OD 不过我也不怎么会用,只是有时候看看而已,好奇.呵呵 03/08 11:53
- [yangyu] 哦,谢谢了。 第一种我用了Debug,因为只知道这种工具, 结果,没有可读性,放弃。 03/08 07:33
- [dreamhk] 编译成EXE文件,再反汇编..... 第二种方法是直接将.C文件搞成.ASM文件,命令如下: 03/07 23:17
- [yangyu] 恩,我又看了前言, 果然,这本书还是要求读者有一定的编程基础,越熟悉越好, 对于初学者来说,比如 03/07 22:41
- [starrynight] 编程编程编程 解决问题解决问题解决问题——哪怕是很小的问题,哪怕是没有什么实际意义的问题,哪怕已经 03/07 20:51
- [游客] en 应该按顺序,认真做 03/07 19:04
- [游客] 学习这本书,还是应该按照书中的要求学比较好,至于为什么,在《汇编语言》的前言中说的很明白! 03/07 18:31
- [游客] 现在的主要疑惑是从c怎么转到汇编的, c语言如何翻译成汇编呢? -------------- 03/07 18:29
- [游客] 有道理。 03/06 12:21
- [xiaochong] 建议博主学习C的时候配合着数据结构学习,二者相辅相成! 03/04 10:02
- [newhand] 兄弟,看了你的文章真不错,以后就请教你了! 03/12 11:14
[2008-02-18 23:17] 十一章 体会
阅读全文 |
评论次数(3) |
浏览次数(666) |
所属类型(学习笔记)
[2008-02-18 12:23] 第十章 检测点
可惜,没通过,
我认为是这道题错了
下列哪条指令不能够使CS:IP指向当前内存段范围内以s为标号的代码段______。
1、 jmp near ptr s
2、 jmp far ptr s
3、 call near ptr s
4、 call word ptr s
我开始只考虑了 jmp far ptr s 是段间转移用的,所以选2。
实际上是错的,
因为,jmp far ptr s的原理是
(我感觉的,没有在书上找到)
计算jmp和标号的物理位移,
因为是far转移,所以这个偏移可以超过64k,
但不必须大于64k,
所以,far...
我认为是这道题错了
下列哪条指令不能够使CS:IP指向当前内存段范围内以s为标号的代码段______。
1、 jmp near ptr s
2、 jmp far ptr s
3、 call near ptr s
4、 call word ptr s
我开始只考虑了 jmp far ptr s 是段间转移用的,所以选2。
实际上是错的,
因为,jmp far ptr s的原理是
(我感觉的,没有在书上找到)
计算jmp和标号的物理位移,
因为是far转移,所以这个偏移可以超过64k,
但不必须大于64k,
所以,far...
阅读全文 |
评论次数(8) |
浏览次数(694) |
所属类型(学习笔记)
[2008-02-18 11:27]
作课程设计1的感想
首先介绍一下我学习的情况,
应用计算机已经很多年了,但初学计算机编程,
13号开始学,中间因为过年,杂乱事情比较多,也有耽误。
但进度还是比较快,结果如何呢?
就像前边有朋友评价我的“我认为,不是什么东西都要问的
博主每一个帖子都有疑问,不是什么好的现象
或许再多思考一下,就能够自己得出正确合理的解答的”
虽然都学过了,但疑问很多,
如果是细细的遍历一遍,想博文推荐里的朋友那样,
我想结果会好很多,
不过,受条件所限,也只好尽力而为之了。
前边学习都还比较顺利,
因为不深究其原因,以通过为目的,
倒也糊弄过去了,
但在这个课程设计上载了大跟头,
费时近一天...
应用计算机已经很多年了,但初学计算机编程,
13号开始学,中间因为过年,杂乱事情比较多,也有耽误。
但进度还是比较快,结果如何呢?
就像前边有朋友评价我的“我认为,不是什么东西都要问的
博主每一个帖子都有疑问,不是什么好的现象
或许再多思考一下,就能够自己得出正确合理的解答的”
虽然都学过了,但疑问很多,
如果是细细的遍历一遍,想博文推荐里的朋友那样,
我想结果会好很多,
不过,受条件所限,也只好尽力而为之了。
前边学习都还比较顺利,
因为不深究其原因,以通过为目的,
倒也糊弄过去了,
但在这个课程设计上载了大跟头,
费时近一天...
阅读全文 |
评论次数(2) |
浏览次数(683) |
所属类型(学习笔记)
[2008-02-16 18:57] 实验 8
这个实验主要是注意
jmp short s1 的真实含义,
即,源程序中这样的代码已经被编译,
形成了固定的跳转代码语句,
所以当它被写到s:nop处时,
含义仍是向前跳转固定的字节,
这样就可以结束程序了。...
jmp short s1 的真实含义,
即,源程序中这样的代码已经被编译,
形成了固定的跳转代码语句,
所以当它被写到s:nop处时,
含义仍是向前跳转固定的字节,
这样就可以结束程序了。...
阅读全文 |
评论次数(1) |
浏览次数(461) |
所属类型(学习笔记)
[2008-02-16 10:55] 问题 7.9
做个记录:
1.
assume cs:code,ss:stack,ds:data
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
start: mov ax,data
mov ds,ax
...
1.
assume cs:code,ss:stack,ds:data
stack segment
dw 0,0,0,0,0,0,0,0
stack ends
data segment
db '1. display '
db '2. brows '
db '3. replace '
db '4. modify '
data ends
code segment
start: mov ax,data
mov ds,ax
...
阅读全文 |
评论次数(0) |
浏览次数(324) |
所属类型(学习笔记)
[2008-02-15 11:08] 程序 5.6的疑问
我写的程序如下:
assume cs:code
code segment
mov ax,0ffffh
mov ds,ax
sub ax,ax
sub dx,dx
sub bx,bx
mov cx,12
s: mov al,ds:[bx]
inc bx
add dx,ax
loop s
mov ax,4c00h
int 21h
code ends
end
和书上的区别就是,
书中每一步的循环都把ah清零,
而我觉得因为...
assume cs:code
code segment
mov ax,0ffffh
mov ds,ax
sub ax,ax
sub dx,dx
sub bx,bx
mov cx,12
s: mov al,ds:[bx]
inc bx
add dx,ax
loop s
mov ax,4c00h
int 21h
code ends
end
和书上的区别就是,
书中每一步的循环都把ah清零,
而我觉得因为...
阅读全文 |
评论次数(2) |
浏览次数(335) |
所属类型(学习笔记)
[2008-02-15 10:41] 程序5.4
这个就是试了试这个修改
assume cs:u
u segment
mov ax,0ffffh
mov ds,ax
mov bx,6
mov al,[bx]
mov ah,0
mov dx,0
mov cx,123
w: add dx,ax
loop w
mov ax,4c00h
int 21h
u ends
end
如上,段名和 loop s中的s,都可以自己设置。...
assume cs:u
u segment
mov ax,0ffffh
mov ds,ax
mov bx,6
mov al,[bx]
mov ah,0
mov dx,0
mov cx,123
w: add dx,ax
loop w
mov ax,4c00h
int 21h
u ends
end
如上,段名和 loop s中的s,都可以自己设置。...
阅读全文 |
评论次数(2) |
浏览次数(329) |
所属类型(学习笔记)
[2008-02-15 00:45] Chapter 4
实验部分,
没啥问题,只是要注意逻辑错误和语法错误的区分。...
没啥问题,只是要注意逻辑错误和语法错误的区分。...
阅读全文 |
评论次数(0) |
浏览次数(407) |
所属类型(学习笔记)
[2008-02-14 23:40] 实验2 2.2
关于 2000:0-2000:f中内容变化,
观察可知,至少是 cs ip中的内容被写进栈去了,
根据书上 68 69 70页 实验2.1的内容,
在Debug下 T命令写入 mov ss,ax的时候,
mov sp,10的内容是自动写入的,
这里有中断机制,
估计这个内容变化也与中断机制有关。...
观察可知,至少是 cs ip中的内容被写进栈去了,
根据书上 68 69 70页 实验2.1的内容,
在Debug下 T命令写入 mov ss,ax的时候,
mov sp,10的内容是自动写入的,
这里有中断机制,
估计这个内容变化也与中断机制有关。...
阅读全文 |
评论次数(4) |
浏览次数(399) |
所属类型(学习笔记)
[2008-02-14 21:09] 问题 3.11
就是栈的长度10000-1ffff,
设ss=1000,那么栈空时,sp=?
这个如果从内存空间来看,
由于00000-fffff是连续的一维线型空间,
所以,在10000-1ffff的栈空间上,
ss+sp应当取 10000-20000,
但这样取值已经超过64K,已经超过段的最大长度了,
在这里就有一个问题,
实际上,在栈运算中,ss是不变的,只有sp变化,
而sp作为16位寄存器,有一个特性(?),
就是当运算超过16位时,舍高位取低位,
即 sp=ffff,则sp+1=0,
sp指向栈的最低位,
在这里,栈开始一种循环了,
因为此时 push,sp=sp...
设ss=1000,那么栈空时,sp=?
这个如果从内存空间来看,
由于00000-fffff是连续的一维线型空间,
所以,在10000-1ffff的栈空间上,
ss+sp应当取 10000-20000,
但这样取值已经超过64K,已经超过段的最大长度了,
在这里就有一个问题,
实际上,在栈运算中,ss是不变的,只有sp变化,
而sp作为16位寄存器,有一个特性(?),
就是当运算超过16位时,舍高位取低位,
即 sp=ffff,则sp+1=0,
sp指向栈的最低位,
在这里,栈开始一种循环了,
因为此时 push,sp=sp...
阅读全文 |
评论次数(1) |
浏览次数(301) |
所属类型(学习笔记)