汇编语言读书笔记(三)

关于本次阅读后的思考

 第七章

各个寄存器之间的区别是什么?

个人理解:寄存器都是存放内存地址的一个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])求余数

 

 

 

 

posted on 2014-02-05 12:48  sunfan  阅读(375)  评论(0编辑  收藏  举报