1625-5 王子昂 总结《2017年3月17日》 【连续第167天总结】
A. 汇编语言 监测点3.1、第三章
B. 做完习题对答案的时候发现果然时隔学习一天再写的问题果然很大_(:з」∠)_不过复习效果应该很多
主要问题是add命令误读成mov命令,因为都是三个字符所以要注意
以及十六进制的加法里,到16才进位。总是直接把个位数拿下来了
还有最重要的一点概念明晰:CS是代码段寄存器;DS是数据段寄存器
当执行下一条指令时,按照CS:IP指向的内存指令执行
当直接使用[..]代码赋值给寄存器时,按照DS:IP指向的内存区域赋值
也就是说,CS:IP相当于指针,表示下一个要执行的指令。DS:IP相当于变量,表示存储着值的内存区域
强化一点:在内存中,指令和数据没有区别,都是二进制。只由读取方式决定它被看做哪一种信息
栈:后进先出的数据类型
CPU提供了栈机制,可以将一段内存当作栈来使用。
使用PUSH和POP两个指令来管理栈。
eg: push ax //将AX寄存器中的内容送入栈
pop ax //表示将栈顶的取出数据送入AX寄存器
8086CPU对栈的操作都是以字为单位进行的,即2个字节
段寄存器SS存放着栈顶的段地址,寄存器SP则存放着栈顶的偏移地址。
当使用push和pop时,CPU从SS:SP中得到栈顶的地址。
每次执行完push和pop,SP都会相应的+2或-2,来移动栈顶指向的地址
C. 明日计划
汇编语言 第三章
安卓