<汇编语言(第2版)>2011032801
约定细节:
文中提出描述性的符号:()
使用()来表示一个寄存器或一个内存单元中的内容。
比如:
DS=2000h,BX=0
有如下数据:
20000H 0AH
20001H 10H
20002H 12H
20003H 25H
那么(BX)对应内容是0AH,如果是字类型100AH
约定idata为常量
指令:
mov ax,[bx]
功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据存放到ax中
(ax) = ((SA)*16+(EA)) = ((DS)*16+(bx))
mov [bx],ax
功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据存放到SA:EA中
((DS)*16+(bx)) = ((SA)*16+(EA)) = (ax)
Loop 指令:
Loop 标号
其用到CX寄存器,用于存储循环次数
模拟CPU执行:
(cx)=(cx)-1;
if (cx) > 0
继续循环执行
else
跳出循环,执行下一个指令
INC 指令
Inc 寄存器
Inc 内存单元
如上例:
Inc BX;
BX内容为1,(BX)内容为10H,字类型1210H
文中提出描述性的符号:()
使用()来表示一个寄存器或一个内存单元中的内容。
比如:
DS=2000h,BX=0
有如下数据:
20000H 0AH
20001H 10H
20002H 12H
20003H 25H
那么(BX)对应内容是0AH,如果是字类型100AH
约定idata为常量
指令:
mov ax,[bx]
功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处的数据存放到ax中
(ax) = ((SA)*16+(EA)) = ((DS)*16+(bx))
mov [bx],ax
功能:bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将ax中的数据存放到SA:EA中
((DS)*16+(bx)) = ((SA)*16+(EA)) = (ax)
Loop 指令:
Loop 标号
其用到CX寄存器,用于存储循环次数
模拟CPU执行:
(cx)=(cx)-1;
if (cx) > 0
继续循环执行
else
跳出循环,执行下一个指令
INC 指令
Inc 寄存器
Inc 内存单元
如上例:
Inc BX;
BX内容为1,(BX)内容为10H,字类型1210H
无论生活、还是技术,一切都不断的学习和更新~~~努力~