关于本次阅读后的思考
第七章
各个寄存器之间的区别是什么?
个人理解:寄存器都是存放内存地址的一个16位的容器,仅仅从用途上可以区分为一般存储功能及特殊功能,
例如CS是指向代码段的寄存器,CX的值会随着LOOP循环指令的执行自动-1
SP会随着栈的PUSH和POP从而+-2等等
第八章
获取数据的长度
mov ax xx---- 1 word
mov al XX ----- 1byte
mov byte ptr ---1byte
mov word ptr -----1word
随后的汇编笔记不再更新详细,大多都是语法上的说明而已,我的本意是为了解计算机原理为目的进行学习,所以汇编的语法并不重要。
第七章 灵活定位内存地址
定位内存地址的几种方式
1 8086CPU中只有BX,SI,DI,BP可以放入[]中进行寻址,,例如[AX]就是错误的
2 BX+SI/DI+IDATA; BP+SI/DP/DI+IDATA
小总结 BP+BX组合是不行的,SI或者DI一定要依靠BX或者BP才能组合,idata随意组合
[BX+idata][BX+DI+idata][BX+SI+idata]
[BP+idata][BP+DI+idata][BP+SI+idata]
[bx],[bp],[si],[di],[idata]
...
第八章 数据处理的两个基本问题
reg/sreg
reg表示寄存器 ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,cl,sp,bp,si,di
sreg表示段寄存器 ds,cs,ss,es
BP寄存器
mov ax,[bp] 含义默认为(AX)=((SS)*16+(BP))
段地址默认是SS
指令获取数据的地址
1 mov bx,[0] 获取数据的地点是内存--地址是ds:0的内存单元
2 mov bx,ax 获取数据的地点是CPU内部--AX寄存器
3 mov ax,1 获取数据的地点是CPU内部--指令缓冲器
获取数据的长度
mov ax xx---- 1 word
mov al XX ----- 1byte
mov byte ptr ---1byte
mov word ptr -----1word
div指令
格式
div reg
div 内存单元
由于除数分为16,32位所以需要1个或者2个寄存器
16位则是AX---AL,AH
32位是AX,DX
div byte ptr ds:[0]
(al)=(ax)/(ds:[0])求商
(ah)=(ax)/(ds:[0])求余数
div word ptr ds:[0]
(ax)=(dx)/(ds:[0])求商
(dx)=(dx)/(ds:[0])求余数