小菜学汇编
mstangyuq
这个作者很懒,什么都没留下…
展开
-
总线的理解
控制总线即控制总线中例如传送101011011,其中每一位控制一个事件或者设备。而数据总线和地址总线则是整体作为数据或者地址。一个数据cpu怎么区别是地址还是控制还是数据,看它在哪个总线上,所以说,cpu是很蠢的。软件安装目录的bin文件中都是软件的二进制代码汇编语言不区分大小写原创 2011-10-25 11:21:28 · 615 阅读 · 0 评论 -
一些汇编指令记忆方法
jcxz 标号:if((cx)==0) jmp short 标号loop 标号:(cx) - -;if ((cx) != 0) jmp short 标号原创 2011-10-30 12:28:16 · 1167 阅读 · 1 评论 -
汇编程序的一般框架
assume cs:codecode segment * *数据 * *start: * *代码 * *code endsend start原创 2011-10-28 21:20:36 · 453 阅读 · 0 评论 -
word(byte)ptr
在没有寄存器参与的内存单元访问指令中,用word ptr 或byte ptr 显性地指明所要访问的内存单元的长度否则,cpu无法得知要访问的单元是字单元还是字节单元。有些指令默认了访问的是字单元还是字节单元,比如,push 和pop只能对字进行操作原创 2011-10-29 11:15:22 · 1058 阅读 · 1 评论 -
汇编堆栈笔记二
关键字:溢出攻击 站外 密码;8086cpu不保证对栈的操作不会越界,这就是说8086cpu只知道栈顶在何处(由ss:sp指示),而不知道读者安排的空间有多大,这点就好像cpu只知道当前要执行的指令在何处(由cs ip指示)而不知道执行的指令有多少。所以说8086cpu的目光非常短浅 它的互作机制:只考虑当前的情况:1:当前栈顶在何处;2:当前要执行的指令是哪一条 ;原创 2011-10-27 18:20:07 · 428 阅读 · 0 评论 -
关于mov 4c00h int 21h的说明
INT 21H 调用了系统中断MOV AX,4C00H其实起作用的就是 AH=4CH,意思就是调用 INT 21H 的 4CH 号中断,该中断就是安全退出程序。其实这句等价于MOV AH,4CHINT 21H原创 2011-10-28 11:11:33 · 9759 阅读 · 0 评论 -
关于堆栈的学习笔记
如何让cpu知道这段内存就是你建立的堆栈?方法就是用ss指向段基址 sp指向段的偏移地址形象的说就是有一个带刻度的水杯。上面是低地址。下面是高地址。ss可以赋值,sp的话就是看你是push还是pop而减2或者增2了。为什么是2呢,push pop每次执行的数据必须是16位的{8086下},也就是说push ax 是对的 push al 是错的 ax 占16位 所以两个内存单元压入堆原创 2011-10-27 16:01:06 · 404 阅读 · 0 评论 -
关于指令指针ip自加多少的问题
读取一条指令后,ip中的值自动增加,以使cpu可以读取下一条指令。但是读取多少呢?下面是个实验:机器码为7419两个字节,所以执行完 jz 022b后ip从0100变为0102,依次类推原创 2011-10-25 23:51:57 · 1117 阅读 · 1 评论 -
debug好玩的命令
-d fe00:0 查看主板bios厂商信息-d ffff 5 l 8 主板bios日期(中间是L)-d c000 0090 显存 出厂信息等等 这个让我理解了一部分像鲁大师等系统检测软件的工作原理。原创 2011-10-25 12:12:04 · 375 阅读 · 0 评论 -
汇编note
Cpu对外部设备不能直接控制,你不可能直接拿一根接线直接接到cpu上!不止主板有bios,各种接口卡例如网卡 都有bios。编程的另一个境界是从cpu的角度考虑问题】Cpu外部有20位地址总线,寻址空间有1M, 内部却是16位结构。所以产生了一种方法:【bx】的作用:作为偏移地址与配合; loop和cx合作用于循环程序的编写;所有的条件转移指令都是短转移原创 2011-10-25 11:24:45 · 330 阅读 · 0 评论