您的位置:首页 > 其它

[置顶] [汇编语言学习笔记][第七章更灵活的定位内存的方法]

2016-04-20 18:06 766 查看
打破了我对bx的幻想

第七章 更灵活的定位内存的方法

7.1 and和or指令

and

mov al,01100011B
and al,00111011B


or

mov al,01100011B
or  al,00111011B


7.2 关于ASCII

7.3 以字符形式给出数据

在汇编中 用’…’的方式致命数据是以字符形式给出的。

data segment
db 'unIX'
db 'foRK'
data ends


db
的意思是define bit 定义字节

db ‘unIX’ 相当于 “db 75H,6EH,49H,58H.”

mov al,’a’ 相当于 “mov al,61H”

7.4 大小写转换

在16进制中,大写小写相差
20H
=
100000B


重点!!纯位运算方法!!

只需将第6位改成1,就变小写,无需判断,你值得拥有。

只需将第6位改成0,就变大写,无需判断,你值得拥有。

以下高能重点:打破了我对bx的幻想

7.5 [bx+idata]

C语言类似含义 :
A[i+1]


特么后面告诉我其实idata才等价于A, A[i]=idata[i],难怪后面有这么奇葩的格式,不是我所想的ds等价A

其实第八章才揭晓了真实,idata也能看作结构体..

该指令也可以写成以下格式

- mov ax,[200+bx](普通)
- mov ax,200[bx]  (数组名)
- mov ax,[bx].200 (结构体名)


注意mov 16位数的时候,移进去两个字节,切记切记

7.6 用[bx+idata]的方式进行数组的处理

遍历

s:mov al,[5+bx]
inc bx
loop s


相当于对5[]这个数组进行遍历

7.7 SI和DI

si
di
是8086CPU中和
bx
功能相近的寄存器,
si
di
不能够分成两个8位寄存器。

7.8 [bx+si]和[bx+di]

C语言类似含义
[bx][si]


7.9 [bx+si+idata]和[bx+di+idata]

C语言类似含义
idata[bx][si]
就是名字叫idata的二维数组

有以下命名法

mov ax,[bx+200+si](普通)
mov ax,[200+bx+si](普通)
mov ax,200[bx][si]  (二维)
mov ax,[bx].200[si]  (一维结构体数组)
mov ax,[bx][si].200  (二维结构体)


7.10 利用栈解决多重循环

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: