初衷是不太懂top/ipcs等命令的输出, 想彻底了解下, 辗转到想了解linux系统调优, 买了一本性能之巅的书。发现需要对操作系统足够了解, 系统调用/中断/异常等概念。
想起大学时候学过这些。
于是找了找操作系统的书, 牵扯到什么寄存器之类的概念。仍旧不太了解。
ps:同时了解了下当下计算机考研的科目,网络+操作系统+数据结构+组成原理。
于是想起汇编语言不就是搞这给的呢。
资料
王爽的那本pdf
配套的讲解视频
https://www.bilibili.com/video/av34455803/?p=34
配套的模拟器
https://blog.csdn.net/lanchunhui/article/details/78151569
链接:https://pan.baidu.com/s/1qEkg-SDSi33cLz_nDF61_w
提取码:c5uk
模拟器说明书
https://www.dosbox.com/wiki/DOSBox_and_Mac_OS_X
https://montcs.bloomu.edu/Information/LowLevel/DOS-Debug.html
英文缩写
https://blog.csdn.net/philosophyatmath/article/details/40266657
AH&AL=AX(accumulator):累加寄存器
BH&BL=BX(base):基址寄存器
CH&CL=CX(count):计数寄存器
DH&DL=DX(data):数据寄存器
SP(Stack Pointer):堆栈指针寄存器
BP(Base Pointer):基址指针寄存器
SI(Source Index):源变址寄存器
DI(Destination Index):目的变址寄存器
IP(Instruction Pointer):指令指针寄存器
CS(Code Segment)代码段寄存器
DS(Data Segment):数据段寄存器
SS(Stack Segment):堆栈段寄存器
ES(Extra Segment):附加段寄存器
FLAG 标志寄存器: FLAG 寄存器中存储的信息通常又被称作程序状态字(PSW)
OF overflow flag 溢出标志 操作数超出机器能表示的范围表示溢出,溢出时为1.
SF sign Flag 符号标志 记录运算结果的符号,结果负时为1.
ZF zero flag 零标志 运算结果等于0时为1,否则为0.
CF carry flag 进位标志 最高有效位产生进位时为1,否则为0.
AF auxiliary carry flag 辅助进位标志 运算时,第3位向第4位产生进位时为1,否则为0.
PF parity flag 奇偶标志 运算结果操作数位为1的个数为偶数个时为1,否则为0.
DF direcion flag 方向标志 用于串处理.DF=1时,每次操作后使SI和DI减小.DF=0时则增大.
IF interrupt flag 中断标志 IF=1时,允许CPU响应可屏蔽中断,否则关闭中断.
TF trap flag 陷阱标志 用于调试单步操作.
其他
psw: program status word
tcon: timer control
ie: interrupt enable
scon: serial control
EA --Effective Address:有效地址 ,即偏移地址。
SA--segment address
最早8位机只有a,b等寄存器。
到16位机a,b扩展到16位以后,就把16位叫ax,bx。 高8位叫ah,bh,低8位叫al,bl,其实还是a,b。
到了32位机a,b扩展到32位,又改成eax,ebx。
当然ax,bx继续代表低16位,ah,al,bh,bl,a,b继续维持以前的意义不变。