汇编语言读书笔记(7.更灵活的定位内存地址的方法)

汇编语言(第三版,王爽)读书笔记

更灵活的定位内存地址的方法

and和or指令

and指令:逻辑与,按位进行与运算 and al,00111011B
or指令:逻辑或,按位进行或运算 or al, 00100000B

以字符形式给出的数据

'......'的方式指明数据是以字符的形式给出的,编译器将他们转化位ASCII码
例如db 'unIX’相当于db 75h,6eh,49h,58h

大小写转化问题

小写字母的ASCII码减去20h就可以得到大写字母
大写字母的ASCII码加上20h就可以得到小写字母
就ASCII码的二进制形式来看,除第5位(位数从0开始)外,大写和小写字母的其它各位都一样,大写字母第5位为0,小写字母第5位为1
and al,11011111B将第5位变为0,变为大写字母
or al,00100000B将第5位变为1,变为小写字母

[bx+idata]

[bx+idata]表示一个内存单元,它的偏移地址为(bx)+idata(bx中的数值加上idata)
例如mov ax, [bx+200]表示 (ax)=((ds)*16+(bx)+200)
也可以写成:mov ax,[200+bx] ,mov ax,200[bx], mov ax,[bx].200

用[bx+idata]的方法进行数组处理

对于如下数据

datasg segment
db 'Basic'
db 'MinIx'
datasg ends

datasg中的2个字符串,一个起始地址为0,另一个为5;可以将它们看成2个数组,使用[bx+0] ,[bx+5]的方式来访问或者写成0[bx],5[bx]

SI和DI

si和di是8086cpu中和bx功能相近的寄存器,但不能分成两个8位寄存器来使用

[bx+si]和[bx+di]

它们2个含义相似,[bx+si]表示一个内存单元,偏移地址为(bx)+(si)

[bx+si+idata]和[bx+di+idata]

它们同样含义相似,[bx+si+idata]表示一个内存单元的偏移地址为(bx)+(si)+idata

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值