《汇编语言》学习笔记 七~八章
来源:互联网 发布:数据库存储图片 编辑:程序博客网 时间:2024/05/02 01:10
第七章
1.db 'unIX'相当于db 75H,6EH,49H,58H(可以用单引号括住)
2.mov ax,[bx+200]把段地址为DS,偏移地址为(bx+200)的内存单元的内容(2bytes)赋值给ax
也可以写成movax,200[bx]或 mov ax,[bx].200
3.不能直接对data段中的元素进行算术运算
如and [bx],20h是非法的,应先mov al,[bx]
and al,0x20h
mov [bx],al
4.SI和DI是与BX功能相近(用来作下标)的寄存器,但其不可分成两个8位寄存器使用
5.更常用[bx+si]和[bx+di]来表示一个内存单元,也可写成 mov ax,[bx][si]
第八章
1.只有bx,bp,si,di这四个寄存器可以(单独或组合)出现在[...]中(但是除了[bx+bp],[si+di]
2.只要在[]中使用了寄存器bp,且指令中没有显式给出段地址,则此时段地址默认取ss
3.对于机器指令这一层,并不关心数据的值是多少,只关心指令执行前一刻将要处理的数据所在的位置
指令执行前所要处理的数据可以在三个地方:CPU内部,内存,端口. 例如:
mov bx,[0] 内存的ds:[0]单元
mov bx,ax CPU内部的ax寄存器
mov bx,1 CPU内部的指令缓冲器
4.寻址方式的种类:
[idata],直接寻址, EA=idata(汇编中称为立即数), SA=ds
[bx],[si],[di],[bp]寄存器间接寻址 SA=DS(除了[bp])
[bx+idata]寄存器相对寻址
[bx+si]基址变址寻址
[bx+si+idata]相对基址变址寻址
5.确定数据处理长度的方法
1)通过寄存器名指明
2)在地址前用操作符word ptr或byte ptr或dword ptr指明(类似于强制类型转换)
3)由操作指令确定,如push,pop指令只进行字操作(因此pop al是不合法的)
6.一般可以用[bx+idata+si]的方式来访问结构体中的数据,用bx定位整个结构体,用idata定位结构体中的某一个数据项,用si定位该数据项中的某一个字符/元素,可以写成类似于C语言的形式 bx.10h[si]
7.div指令的被除数位数决定除数位数,得数的商存放在低位(如al或ax),余数存放在高位(如ah或dx)
8.dd用来定义dword(32位,4byte)的数据(伪指令)
9.dup也是一个伪指令操作符,用来进行数据的重复,比如:db 3 dup (0)
若db 3 dup(0,1,2)则相当于定义了九个字节 0,1,2,0,1,2,0,1,2
db 3 dup ('abc','ABC')定义了十八个字节'abcABCabcABC...'
- 《汇编语言》学习笔记 七~八章
- 汇编语言学习笔记(八)
- 汇编语言学习笔记(七)
- 汇编语言学习笔记(八)数据处理的两个基本问题
- 《汇编语言》学习(八)数据处理
- 《汇编语言》学习(七)寻址
- 《汇编语言》学习笔记 第二章之寄存器
- 王爽《汇编语言》学习笔记--第二章
- 王爽《汇编语言》学习笔记--第三章
- 王爽《汇编语言》学习笔记--第四章
- 王爽《汇编语言》学习笔记--第七章
- 王爽《汇编语言》学习笔记--第八章
- 王爽《汇编语言》学习笔记--第九章
- 王爽《汇编语言》学习笔记--第三章
- 汇编语言学习笔记 ( 第二章)
- 《汇编语言》学习笔记 第二章 寄存器
- 《汇编语言》学习笔记 四~六章
- [汇编语言学习笔记][第二章寄存器]
- 在vc中的调用chm文件的方法
- java 内部类
- poj解题报告——1730
- iOS- 如何集成支付宝
- 欢迎使用CSDN-markdown编辑器
- 《汇编语言》学习笔记 七~八章
- LSTM的公式推导详解
- android 实现progressdialog 等待界面
- Django响应大文件下载请求
- ios命名规范
- Framework启动过程浅析
- Android ListView相关功能介绍
- 基于Schema的AOP 配置使用详解
- Hdu 1950 Bridging signals