shuiyu 发表于 2017-10-19 22:10:23

《零基础入门学习汇编语言》第五十九讲及检测点11.4

本帖最后由 shuiyu 于 2017-10-19 22:13 编辑

越努力,越幸运。欢迎大家来看我的笔记{:10_297:},不对的请各位大佬指正,谢谢{:10_254:}

终于学完了,我是为了学习破解才来学习汇编的,今天看教程视频在结尾小甲鱼来了一句:“学习破解的同学学习到这里算是功德圆满了“,意思说我学完这个了{:10_250:} 很惊讶、很意外{:10_277:} 看了一下我第一次发帖的时间,刚好四个月,整整花了四个月(惭愧惭愧啊{:10_258:} )但是对于自己学完了还是很高兴的{:10_281:} 接下来我会继续学习小甲鱼的破解教程重开一贴,最后感谢小甲鱼感谢鱼C这个平台,祝鱼C越办越好{:5_106:}

一、DF标志和串传送指令
(1)回顾一下
DF = 0:每次操作后si,di递增;
DF = 1:每次操作后si,di递减。
cld指令:将标志寄存器的DF位置0
std指令:将标志寄存器的DF位置1
movsb (以字节为单位传送):将 ds:si 指向的内存单元中的字节送入 es:di中,然后根据标志寄存器DF位的值,将 si和di递增或递减
movsw(以字为单位传送):将 ds:si指向的内存字单元中word送入es:di中,然后根据标志寄存器DF位的值,将si和di递增2或递减2。
rep movsb:rep的作用是根据cx的值,重复执行后面的串传送指令。由于每执行一次movsb指令si和di都会递增或递减指向后一个单元或前个单元,则rep movsb就可以循环实现(cx)个字符的传送。(记住是执行后才会递增或者递减)
rep movsw同理

(2)两题编程
1.题目很简单,理解(1)中的那几个指令就可以了。



2.这题也挺简单,懂得确定f000H段的最后16个数值在那就可以了。还有一个细节,就是在这一题中di是要赋值为15的,因为是从0开始的。


二、pushf 和 popf
pushf :将标志寄存器的值压栈;

popf :从栈中弹出数据,送入标志寄存器中。

pushf 和 popf,为直接访问标志寄存器提供了一种方法。


检测点11.4
文字排版不好看,只有截图下来了




谢谢小甲鱼带来的视频教程,感谢!! {:10_303:}










兰陵月 发表于 2017-10-25 10:53:01

虽然前路曲折黑暗~

但毕竟你还是树立了一个目标~

所以还是要先恭喜你一下~

坚持了~就成功了~

总有一天你今天树立的目标将被你踩在脚下~

而更加远大的目标又在前方等着你~

人其实不清楚自己是怎么成功的~

其实就是这么一步一步达成了小目标之后~

就这么顺其自然地成功了~

菜鸟零号 发表于 2018-10-27 17:44:03

看到近两年的帖子了不容易啊{:10_256:}

Krystian 发表于 2019-7-23 17:02:06

我也是听到小甲鱼说,学破解看到这就功德圆满了{:10_266:}
感谢你的学习笔记,我从中收获了很多

Mr.HO 发表于 2019-7-26 16:04:01

我还在继续学

shuiyu 发表于 2019-10-3 11:30:35

Mr.HO 发表于 2019-7-26 16:04
我还在继续学

加油!

员理管帅最 发表于 2019-10-30 10:50:04

跨时空交流,①句:谢谢大哥,请收下

panzhen 发表于 2020-11-25 09:54:20

本来我学到这了 ,想看看你下面做的,结果你竟然就学到这,还差一点学完多好。

不自律的笨鸟 发表于 2021-5-15 07:26:16

看来还有很多东西要学习啊!

不自律的笨鸟 发表于 2021-5-18 21:15:30

看来还有很多东西要学习啊!

maoping26 发表于 2022-11-19 14:01:14

为什么我在执行单步pop ax 后,寄存器ax=0047,而前面pushf ;0000 0000 0100 0101(0045H),出现这问题何在?

在房间里流浪 发表于 2025-3-3 16:04:54

才看到这一章,谢谢指导。
页: [1]
查看完整版本: 《零基础入门学习汇编语言》第五十九讲及检测点11.4