第七章 更灵活的定位内存地址的方法 知识梳理

and和or指令

and逻辑与指令

作用:通过该指令可以将操作对象的相应位设为0,其他位不变

or 逻辑或指令

作用:通过该指令可以将操作对象的相应位设为1,其他位不变

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

si,di 在8086CPU中和BX功能相近的寄存器

si和di不能分成两个8位寄存器来使用!

等效写法

两个变量表示地址:[bx+si]  ↔  [si+bx], [bx][si], [si][bx]

一个变量一个常量表示地址:[bx+idata]  ↔  [bx]idata, idata[bx]

两个变量一个常量表示地址:[bx+si+idata]  ↔  [bx][si][idata], [bx][si+idata], idata[bx][si], idata[bx+si]

注意多种寻址方式的应用技巧。



大小写转换问题

字母大小写的ASCII码

会发现只有第三位不同,可以利用or或and指令来修改

变为大写字母 and al,11011111b

变为小写字母 or al,00100000b

不同寻址方式的灵活运用

注意:

1.在debug中,a命令不支持诸如‘a‘这样的写法,e命令支持。

2.注意二重循环

外重循环和内层循环对于cx的使用,解决方法(1)将外层循环cx的值保存在dx中

(2)暂存数据时利用栈,push,pop

3 等价关系

dw 0,0,0,0,0,0,0,0↔dw 8 dup(0)

mov al,[bx+3]

and al,11011111   ↔   and byte ptr ds:[bx+3],11011111b

mov [bx+3],al

原文地址:https://www.cnblogs.com/zq-dmhy/p/10023519.html

时间: 2024-10-10 22:14:16

第七章 更灵活的定位内存地址的方法 知识梳理的相关文章

汇编语言学习第七章-更灵活的定位内存地址的方法

本博文系列参考自<<汇编语言>>第三版,作者:王爽 前面已经通过类似[0]和[bx]的方法进行了内存定位了.本章将涉及更多内存地址定位和编程的方法. 7.1 and 和 or 指令 (1) and指令,逻辑按位与指令 例如: mov al,01100011B and al,00111011B 执行后 al=00100011B and指令可以用来将某个数的位置为零. 比如我们要将al的第二位置为零,则: and al,11111101B 依次类推. (2) or指令,逻辑按位或指令

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

一.and和or指令 ①and指令:逻辑与指令,按位进行与运算.(仅在1与1时结果中为1) eg:mov al,01100011B and al,00111011B 结果:al=00100011B 作用:通过该指令可以将操作对象的相应位设为0,其他位不变. ②or指令:逻辑或指令,按位进行或运算.(仅在0或0时为0) eg:mov  al,01100011B or   al,00111011B 结果:al=01111011B 作用:通过该指令可以将操作对象的相应位设为1,其他位不变. 注意:(1

更灵活的定位内存地址的方法(学习汇编)

1.and指令:逻辑与指令,按位进行与运算.与1不变,与0变0,可将对象相应位设为0. 2.or指令:逻辑或指令,按为进行或运算.或1变1,或0变0,可将对象位设为1. 3.[BX+idata]的几种表现形式: mov ax,[200+bx] mov ax,200[bx] mov ax,[bx].200 4.SI和DI是8086CPU中和Bx功能相似的寄存器,只是不能分成两个8位的寄存器来用. 5.[BX+SI]进行内存地址定位的几种形式: mov ax,[bx][si] mov ax,[bx+

《汇编语言》总结04 —— 更灵活的定位内存地址的方法

(一)and和or指令 and指令:逻辑与指令,按位进行与运算 mov al,01100011B and al,00111011B 执行后,al=00100011B 作用:通过该指令可将操作对象的相应位设为0,其他位不变. or指令:逻辑或指令,按位进行或运算 mov al,01100011B or al,00111011B 执行后:al=011111011B 作用:通过该指令可将操作对象的相应位设为1,其他位不变. (二)关于ASCII码 世界上有很多编码方案,有一种方案叫做ASCII编码,是

汇编语言——更灵活的定位内存地址的方法

and和or指令 1.and指令 将2进制中的1当做真,2进制中的0当做假 则:只有2个事件都为真的时候才为真,即1&&1==>1,1&&0==>0,0&&0==>0: 用处:假如想把一个数的第7位变成0,让它和01111111B执行与操作就好了 1 mov al,10001101B ; 8位数据 2 3 add al,01111111B 4 5 >> (al)=00001101B 2.or指令 只要2个事件中有1个是真即为真,

汇编语言:第七章 更灵活定位内存地址的方法

7.1 and 和 or 指令 二进制的and or 可以将某位归0或置1 7.2 关于ASCII码 7.3 以字符形式给出数据 data segment db 'unIX'                    //相当于db 75H,6EH,49H,58H db 'foRK' //相当于db 66H,6FH,52H,4BH data ends mov al,'a'   //相当于mov al,61H 7.4 大小写转换问题 db 'BaSiC' db 'iNfOrMaTiOn' 如何将第一个

汇编语言学习笔记(7)——更灵活地定位内存

1.and指令 逻辑与指令,按位进行与运算,例如: mov al,01100011B and al,00111011B 计算后的al结果为:00100011B 计算过程: 0 1 1 0 0 0 1 1 B 0 0 1 1 1 0 1 1 B ---------------------------- 0 0 1 0 0 0 1 1 B 可以看出,逻辑与运算两个二进制的思路是,设1为真,0为假,则按位对应两个数,同一位置上下两个值同为真则结果为真(1),同为假则结果为假(0),一真一假结果为假(0

重新定位svn地址的方法(windows和linux),svn switch(sw)的帮助信息

今天公司的路由器出现问题,服务器的IP地址也跟着变了,但是原来的svn已经设置好了,现在需要更换地址 查询原地址的方法: [ruby] view plain copy print? root@jack-desktop:codes# svn info 路径: . URL: http://192.168.1.58/repos 版本库根: http://192.168.1.58/repos/linux_monitor 版本库 UUID: 81fe7417-a8b1-40d6-90b8-66197304

第七章:Oracle完整后台进程&amp;内存结构图

原文地址:https://www.cnblogs.com/ios9/p/10199084.html