目录

一、and和or指令

1.补充知识:

2.and指令

3.or指令

二、以字符的形式给出的数据

三、大小写转换

ACSII码值对照表:


一、and和or指令

1.补充知识:

与运算(&):两个计算的二进制数相同位为1结果为1,否则为0。

1     1&1=1

2     1&0=0

3     0&1=0

4     0&0=0

或运算(|):相同位的二进制数有1为1,否则为0。

1      1|0=1

2      1|1=1

3      0|1=1

4      0|0=0

异或运算(^) :同0异1。

1     1^1=0

2     1^0=1

3     0^1=1

4     0^0=0

2.and指令

(1)定义:逻辑与指令,按位进行与运算。

(2)例:

mov al,01100011B

and al,00111011B

执行后:al =00100011

(3)通过该指令可将操作对象的相应位设为0,其他位不变。

例:
将al的第六位设为0的指令:and al,10111111B。

3.or指令

(1)定义:逻辑或指令,按位进行或运算。

(2)例:

mov al,01100011B

or , 00111011B

执行后:al=01111011B

(3)通过该指令可将操作对象的相应位设为1,其他位不变。

例:

将al的第六位设为1的指令:or al,01000000B。

二、以字符的形式给出的数据

在汇编语言中,用'......'的方式指明数据是以字符的形式给出的。

例: assume cs:code,ds:data

data segment

db 'unIX'

db 'foRK'

data ends

code segment

start mov al,'a'

mov bl,'b'

mov ax,4c00h

int 21h

code ends

end start

其中:

db 'unIX'相当于“db 75H,6EH,49H,58H”,"u","n","I","X"的ASCII码分别为:75H、75H、6EH、49H、58H。

db 'foRK'相当于“db 66H,6FH,52H,4BH”,"f","o","R","K",的ASCII码分别为:66H、6FH、52H、4BH。

mov al,'a'相当于“mov al,61H”,“a”的ASCII码为61H;

mov al,'b'相当于“mov al,62H”,“a”的ASCII码为62H。

三、大小写转换

考虑一个问题,在code中填写代码,将datasg中的第一个字符串转化为大写,第二个字符串转化为小写:

assume cs:code,ds:datasg

datasg segment

db  'BaSiC'

db  'iNfOrMaTiOn'

datasg ends

codesd segment

start:

codesg ends

end start

ACSII码值对照表:

SCII 码 字符 ASCII 码 字符 ASCII 码 字符 ASCII 码 字符
十进位 十六进位 十进位 十六进位 十进位 十六进位 十进位 十六进位
032 20 056 38 8 080 50 P 104 68 h
033 21 ! 057 39 9 081 51 Q 105 69 i
034 22 " 058 3A : 082 52 R 106 6A j
035 23 # 059 3B ; 083 53 S 107 6B k
036 24 $ 060 3C < 084 54 T 108 6C l
037 25 % 061 3D = 085 55 U 109 6D m
038 26 & 062 3E > 086 56 V 110 6E n
039 27 ' 063 3F ? 087 57 W 111 6F o
040 28 ( 064 40 @ 088 58 X 112 70 p
041 29 ) 065 41 A 089 59 Y 113 71 q
042 2A * 066 42 B 090 5A Z 114 72 r
043 2B + 067 43 C 091 5B [ 115 73 s
044 2C , 068 44 D 092 5C \ 116 74 t
045 2D - 069 45 E 093 5D ] 117 75 u
046 2E . 070 46 F 094 5E ^ 118 76 v
047 2F / 071 47 G 095 5F _ 119 77 w
048 30 0 072 48 H 096 60 ` 120 78 x
049 31 1 073 49 I 097 61 a 121 79 y
050 32 2 074 4A J 098 62 b 122 7A z
051 33 3 075 4B K 099 63 c 123 7B {
052 34 4 076 4C L 100 64 d 124 7C |
053 35 5 077 4D M 101 65 e 125 7D }
054 36 6 078 4E N 102 66 f 126 7E ~
055 37 7 079 4F O 103 67 g 127 7F DEL

通过对照我们不难看出小写字母的ASCII码值比大写字母的ACSII码值大20H。我们以 'BaSiC'为例:

assume cs:code,ds:datasg

datasg segment

db  'BaSiC'

db  'iNfOrMaTiOn'

datasg ends

codesd segment

start:mov ax,datasg

mov ds,ax

mov bx,0

mov cx,5

s:mov al,[bx]

如果(al)>61H,则小写字母的ASCII码,则:sub al,20H

mov [bx],al

inc bx

loop s

.

.

.

codesg ends

end start

汇编语言-更灵活的定位内存地址的方法相关推荐

  1. [汇编语言]更灵活的定位内存地址的方法

    目录 一.and和or指令 二.以字符的形式给出数据 三.大小写转化问题 四.[bx+idata] 五.SI和DI 六.[bx+si]和[bx+di] 与 [bx+si+idata]和[bx+di+i ...

  2. (七)汇编语言——更灵活的定位内存地址的方法

    目录 and和or ASCII码 [bx+idata] SI和DI寄存器 [bx+si]和[bx+di] [bx+si+idata]和[bx+di+idata] 总结 例子(双重循环的解决方案) 我们 ...

  3. 更灵活的定位内存地址的方法02 - 零基础入门学习汇编语言33

    第七章:更灵活的定位内存地址的方法02 让编程改变世界 Change the world by program [bx+idata] 在前面,我们可以用[bx]的方式来指明一个内存单元, 我们还可以用 ...

  4. 更灵活的定位内存地址的方法05 - 零基础入门学习汇编语言36

    第七章:更灵活的定位内存地址的方法05 让编程改变世界 Change the world by program 问题7.8 [codesyntax lang="asm"] assu ...

  5. 更灵活的定位内存地址的方法---汇编学习笔记

    更灵活的定位内存地址的方法 前面,我们用[0].[bx]的方法,在访问内存的指令中,定位内存单元的地址.本章将用更灵活的方式来定位内存地址. 7.1 and和or指令 (1)and指令:逻辑与指令,按 ...

  6. 汇编: 更灵活的定位内存地址的方法

    bx是偏移地址寄存器.同样的, si,di也是偏移地址寄存器. 这样使用了si,di可以更灵活的定位内存地址. assume cs:codecode segmentstart: mov bx,0mov ...

  7. 王爽 汇编语言第三版 第7章 --- 更灵活的定位内存地址的方法(可以理解为 数组形式的内存定位)

    汇编语言(第三版)王爽著 的十二个实验:https://blog.csdn.net/OrangeHap/article/details/89791064 大小端 字节对齐 对于 arm,intel 这 ...

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

    (一)and和or指令 and指令:逻辑与指令,按位进行与运算 mov al,01100011B and al,00111011B 执行后,al=00100011B 作用:通过该指令可将操作对象的相应 ...

  9. 汇编语言-王爽 第7章 更灵活的定位内存地址的方法-笔记

    将datasg中的第一个字符串转化为大写,第二个字符串转化为小写. 第一种方法: assume cs:codesg,ds:datasgdatasg segmentdb 'BaSic'db 'iNfOr ...

最新文章

  1. python怎么安装第三方库-vs2017怎么安装python第三方包
  2. 进程通信学习笔记(Posix消息队列)
  3. 计算机视觉——利用openCV与Socket结合进行远程摄像头实时视频传输并保存图片数据
  4. html原生音频播放器倍速,HTML5倍数功能视频播放器(加速2倍,1.5倍播放)
  5. [转]Java序列化的高级认识
  6. web 自动化测试 selenium基础到应用(目录)
  7. python 自动化 在日历中选择时间-python – 在日历日期选择器上使用selenium
  8. arm指令集_重磅!Arm宣布:指令集,客户可自定义
  9. 95. php 与 xml
  10. 高优先权调度算法和高响应比优先调度算法
  11. PCS7 DCS 水泥粉磨程序
  12. 射极跟随器负载加重解析
  13. 用SPSS做数据分析时遇到的几个小问题——解决方法!
  14. Error: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk 解决
  15. 忘记了已保存自动登录的密码,怎么办?
  16. MSCOCO数据集转VOC数据集训练目标检测模型
  17. 交互题 XOR Guessing
  18. 如何解决:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
  19. 逻辑回归与softmax回归
  20. 香港科技大学陈浩教授招收AI全奖博士

热门文章

  1. 图片压缩大小电脑怎么操作?3秒教你图片怎么压缩大小
  2. Premiere优雅炫酷的空间动态线条PR标题模板MOGRT
  3. c++ jna 数据类型_JNA 使用总结
  4. CheckBox多选框
  5. 清除浮动--额外标签法
  6. java实现mysql备份_Java实现MySQL数据库备份
  7. linux下mysql数据备份_Linux下MySQL备份指定数据库命令
  8. 生活日常:第一次自己选配件DIY电脑主机
  9. BeanUtils.populate方法详解
  10. android 原生人脸检测