八--数据处理的两个基本问题
作者:互联网
(1)处理的数据在什么地方?
(2)要处理的数据有多长
约定reg表示一个寄存器,sreg表示一个段寄存器
reg包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di
sreg包括:ds、ss、cs、es
1.bx、si、di和bp
①只有这四个寄存器可以用“[......]”来进行内存单元的寻址
如mov ax,[bx+si]是正确的
mov ax,[cx]是错误的
②在“[......]”中,这四个寄存器可以单个出现,或只能以四种组合出现
bx和si bx和di
bp和si bp和di
③只要在[......]中使用bp,而没有显性的给出段地址,那么段地址默认在ss中
2.机器指令处理的数据在什么地方
机器指令不关心数据的值,只关心指令执行前一刻,他将要处理的数据所在的位置
有3个地方:cpu内部、内存、端口
3.汇编语言中数据位置的表达
①立即数(idata)
直接包含在机器指令中的数据(执行前在cpu的指令缓冲器中),称为立即数
②寄存器
要处理的数据在寄存器中,指令中给出寄存器名
③段地址(SA)和偏移地址(EA)
数据在内存中,可用[X]的格式给出EA,而SA在某个段寄存器中
4.寻址方式
5.指令要处理的数据有多长
8086可以处理两种尺寸的数据:byte和word
①通过寄存器名指明尺寸
②没有寄存器名的话,用操作符X ptr指明,X可以为word或byte
③其他方法
有些指令默认的数据尺寸,比如push [1000H]不用指明,因为push指令只进行字操作
6.寻址方式的综合应用
7.div指令
div是除法指令,应注意以下问题:
①除数:有8位和16位两种,在一个reg或内存单元中
②被除数:默认放在AX或DX和AX中
如果除数为8位,被除数则为16位,默认在AX中存放
如果除数为16位,被除数则为32位,在DX和AX中存放,DX放高16位,AX放低16位
③结果:如果除数为8位,则AL存放除法的商,AH存放除法的余数
如果除数为16位,则AX存放除法的商,DX存放除法的余数
8.伪指令dd
dd用来定义dword型数据(double word,双字)
9.dup
dup是一个操作符,是和db、dw、dd配合使用的,用来进行数据的重复
标签:基本,16,--,指令,bp,寄存器,数据处理,AX,数据 来源: https://www.cnblogs.com/cangshiqian/p/16651901.html