第八章——数据处理的两个基本问题

2018-02-28  本文已影响0人  LCM_一方

8.1,提出两个问题

1,处理的数据在什么地方?

2,处理的数据有多长?


8.2,BX,BP,SI,DI

[...]这种方式之前我们已经使用过很多次了,在这里详细的阐述其使用规则。

只能通过这几种方式:

[BX\SI\DI\BP]

[BX\BP\SI\DI

+idata]当然还有其他的形式,但是本质还是这个

[BX\BP+SI\DI]

[BX\BP+SI\DI+idata]

需要注意的是,在不加段前缀的情况下,[...]出现BP则默认以(SS)为段地址,其他的都默认(DS)为段地址。


8.3,汇编中数据位置的表达

立即数方式

比如 mov ax,1


寄存器方式

mov ax,bx


SA+EA方式

mov ax,[BX+DI]

段地址也可以显示给出,否则bx则默认ds为段地址,bp默认为ss为段地址。


8.4,寻址方式

图图

8.5,处理数据的长度是多少?

有寄存器,则按照寄存器的长度来算。

没有寄存器,请用X ptr来指明,否则会出问题。

有些指令是默认长度的,比如PUSH和POP。


8.6,寻址方式的综合运用

[BX+idata+SI]这种相对基址变址,可以模拟结构体的访问。BX指向结构起始位置,idata指向数据项位置,SI指向数据项具体内容的下标。可以写成[BX].idata[SI]。


8.7,div指令


8.8,伪指令dd

dd表示开辟双字空间。


8.9,dup

数据类型 重复次数 dup (需要重复的数据,...)

db 3 dup (1,2,3)那么内存中是1,2,3,1,2,3,1,2,3


上一篇下一篇

猜你喜欢

热点阅读