《汇编语言》(王爽)第8章 数据处理的两个基本问题--笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正确表示:mov ax,[bp]
(1)错误表示:mov ax,[ds], mov ax,[cx]
(2)在内存单元表示的[...]这种形式下,中括号里面只能放bx,si,di,bp 这四个寄存器。
1.bx,si a.bx,di b.bp,si c.
bp,di d.正确组合:(1)mov ax,[bx+bp]a.mov ax,[si+di]
b.错误表示:
(2)在“[...]”里面的寄存器只能是固定的四种组合,其他组合是错误的
2.如果在[...]中包含了bp 这个寄存器,那么默认的段寄存器就是ss
3.8.1 bx 、si 、di 和bp
从机器指令的层面来讲,并不关心数据的数值是多少,而关心在执行指令之前,它将要处理的数据存在在什么位置
1.CPU 内部
(1)内存
(2)端口
(3)处理的指令可以存放的位置有三个:
2.8.2 机器指令处理的数据在什么地方
立即数。直接在指令中给出,执行指令前一刻,和代码一起存储在CPU 的指令缓存器中(1)eg.mov ax,1
寄存器 eg.mov ax,bx
(2)段地址(SA )和偏移地址(EA ) eg. mov ax,ds:[3]
(3)汇编语言中数据存储的位置有三种声明方式:
1.8.3 汇编语言中数据位置的表达
8.4 寻址方式
在之前的笔记已经整理了——>所有的寻址方式
8.5 指令要处理的数据有多长
mov al,bl (1)mov ax,bx
(2)通过寄存器名
1.mov word ptr ds:[0],1(1)inc byte [bx]
(2)通过“X ptr [...]”的格式,其中X 为word 或byte
2.pop ax (1)push bx
(2)默认或者已经规定(栈操作都是以字为单位)
3.汇编语言中通过三种方式声明所处理的是字还是字节
8.6 寻址方式的综合应用
暂时跳过
div reg(寄存器)
(1)div 内存单元
(2)格式:
1.运算规则与涉及到的寄存器
2.例:计算10001/100
3.由于10001>65535,所以被除数需要用DX 和AX 联合存放。即使100<255,除数也必须取16位的,也就是把8.7 div 指令
第8章数据处理的两个基本问题
2019年11月10日17:54
由于10001>65535,所以被除数需要用DX 和AX 联合存放。即使100<255,除数也必须取16位的,也就是把100放在一个16位的寄存器或者放在连续的两个内存单元。db
字节型数据8位dw 字型数据16位
dd 双字型数据32位
8.8 伪指令dd
dup 是一个由编译器识别处理的操作符,用于定义重复的数据
1.例:
2.db 3 dup('abc','ABC')
3.即:'abcABCabcABCabcABC'
格式: X 重复的次数dup (重复的X 类型数据),其中X 可以为8.8小节中的任意一种
4.8.9 dup