《汇编语言》——王爽 第八章 数据处理的两个基本问题

本章对前面的所有内容是具有总结性的。

我们定义的描述性符号:reg和sreg

以后的课程中,我们将使用两个描述性的符号reg来表示一个寄存器,用sreg表示一个段寄存器。

reg的集合有:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di

sreg的集合有:ds,ss,cs,es

8.1 bx,si,di和bp

在[....]中,这4个寄存器可以单个出现,或只能以4种组合出现:bx和si,bx和di,bp和si,bp和di

只要在[...]中使用寄存器bp,而指令中没有显性地给出段地址,段地址就默认在ss中

8.2 机器指令处理的数据在什么地方

所要处理的数据可以在3个地方:CPU内部(寄存器,指令缓冲器),内存,端口(端口将在后面的课程中进行讨论)

8.3 汇编语言中数据位置的表达

1 立即数(idata)

2 寄存器

3 段地址(SA)和偏移地址(EA)

指令要处理的数据在内存中,在汇编指令中可用[x]的格式给出EA,SA在某个段寄存器中。

8.4 寻址方式

当数据存放在内存中时候,我们可以用多种方式来给定这个内存单元的偏移地址,这种定位内存单元的方法一般称为寻址方式。

包括:直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。(见书)

8.5 指令要处理的数据有多长

1 通过寄存器名指明要处理的数据的尺寸

2 在没有寄存器名存在的情况下,用操作符X ptr 指明内存单元的长度,X在汇编指令中可以为word 或byte

在没有寄存器参与的内存单元访问指令中,用word ptr 或byte ptr 显性地指明所要访问的内存单元的长度是很有必要的。否则CPU得知所要访问的单元是字单元,还是字节单元。

8.6 寻址方式的综合应用

8.7 div指令

除法指令。

具体见书

8.8 伪指令 dd

前面我们用db和dw定义字节型数据和字型数据。dd是用来定义dword(double word,双字)型数据的。

8.9 dup

dup是一个操作符,在汇编语言中同db,dw,dd等一样,也是由编译器识别处理的符号,它是和db,dw,dd等数据定义伪指令配和使用的,用来进行数据的重复。

实验7 寻址方式在结构化数据中的应用

注意,这个程序是目前位置最复杂的程序,它几乎用到了我们以前学过的所有知识和编程技巧。所以,这个程序是对我们从前学习的最好的实践总结,请认真完成。

猜你喜欢

转载自www.cnblogs.com/JasonPeng1/p/12116526.html