更灵活的定位的内存地址的方法
1>
and or
逻辑 与或指令,通过该指令可以进行位操作
and al,000111011B
ascii码
以字符形式给出的数据
datastr segment
db 'unit'
db 'torr'
datastr ends
大小写转化
方法二
思路:从二进制区别考虑
大写 小写
A 41 0100 0001 61 0110 0001
B 42 0100 0010 62 0110 0010
C 43 0100 0011 63 0110 0011
D 44 0100 0100 64 0100 0100
大写到小写!将第5位置1
mov
or 01000001B,00100000B
小写到大写,将第5位置0
and 01100001B,11011111B
2>
[bx+idata]
偏移地址为bx中的数值+idata
mov ax,[bx+200]
将一个内存单元的内容送入ax,这个内存单元的长度位字单元,存放一个字,偏移地址位bx中的地址+200,段地址在ds中
(ax)=((ds)*16+(bx)+200)
用[bx+idata]的方式进行数组的处理
assume cs:codesg,ds:datasg
datasg segment
db 'basic'
db 'miniex'
datasg ends
codesg segment
start:
codesg ends
end start
[bx+si+idata]和[bx+di+idata]
表示一个内存单元
偏移地址(bx)+(si)+idata
3>
不同寻址方式(定位内存的方法)的灵活应用
[idata] 用一个常量来表示内存,用于直接定位一个内存单元
[bx] 用一个变量来表示内存,间接来定位一个内存单元
[bx+idata]
[bx+si]
[bx+si+idata]
实验
mov ax,datasg
mov ds,ax
mov bx,0
mov cx,6
s:mo
阅读(679) | 评论(1) | 转发(0) |