内存地址[bx+idata]、[bx+si/di]、[bx+si/di+idata]的灵活定位

  • 一. 实验目的
  • 二.实验内容
  • 三. 实验步骤
  • 四. 结果
  • 五. 心得体会

一. 实验目的

1、 掌握and和or指令的用法。
2、灵活运用[bx+idata]、[bx+si/di]等指令定位内存地址。
3、利用不同寻址方式实现大小写的转换问题。

二.实验内容

1、 利用[bx+idata]、[bx+si/di]等指令实现大小写的转换。
2、 不同寻址方式的灵活运用。
3、 Debug调试追踪。

三. 实验步骤

(1) 编写源程序。
(a) 将datasg段中每个单词的1、3、5位改为大写。

assume cs:codesg,ds:datasg
datasg segmentdb 'integer         'db 'integent        'db 'notebook        ’db 'company         ’datasg endscodesg segmentstart:mov ax,datasgmov ds,axmov bx,0mov cx,4s:mov al,[bx+0]and al,01111111Bmov al,[bx+2]and al,11011111Bmov al,[bx+4]and al,11110111Bmov [bx+4],aladd bx,16loop s
codesg ends
end start

(b) 编写程序,将datasg段中每个单词的前4个字母改为大写。

assume cs:codesg,ss:stacksg,ds:datasg
stacksg segmentdw 0,0,0,0,0,0,0,0
stacksg ends
datasg segmentdb '1. display      'db '2. brows        'db '3. replace      'db '4. modify       '
datasg endscodesg segmentstart: mov ax,stacksgmov ss,axmov sp,16mov ax,datasgmov ds,axmov bx,0mov cx,4s: push cxmov di,3mov cx,4s0: mov al,[bx+di]and al,11011111bmov [bx+di],alinc diloop s0pop cxadd bx,16loop smov ax,4c00hint 21codesg endsend start

© 编写程序,利用si、di实现将‘welcome to class’复制到它后面的数据区中。

assume cs:codesg,ds:datasg
datasg segmentdb 'welcome to class'db '                'datasg endscodesg segmentstart:mov ax,datasgmov ds,axmov si,0mov cx,8s:mov ax,[si]mov[si+16],axadd si,2loop smov ax,4c00hint 21h
codesg ends
end start

(2) 完成一个完整程序的全过程,包括编辑、编译、连接生成可执行文件。
(3) 上机调试,追踪运行结果。

四. 结果

(a) 测试前:

测试后:

(b) 测试前:

测试后:

© 测试前:

测试后:

五. 心得体会

1、datasg中定义了4个字符串,每个字符串的长度为16个字节,为了在debug调试时方便查看,在每个字符串的后面都加上了空格符,以使得它们的长度刚好为16个字节。
2、通过实验进一步熟悉了or和and指令,“and al,11011111B”可以将al中的ASCII码变为大写字母,“or al,00100000”可以将al中的ASCII码转为小写字母。
3、第3题复制代码的时候可以用’…’的方式表明数据是以字符的形式给出的,编程时注意指明内存单元。
4、由于我所有的代码均在debug上进行调试,故没有指明段地址,第一题与第三题程序默认段地址为ds,第二题为了简化程序故使用栈所以段地址为ss。

内存地址[bx+idata]、[bx+si/di]、[bx+si/di+idata]的灵活定位相关推荐

  1. 汇编程序-更灵活的定位内存地址方法

    汇编程序-更灵活的定位内存地址方法 如何灵活运用定位内存的方法呢?在之后,我们将列出几个实际例子.通过例子,展示定位内存的一些方法,熟悉和提升我们对汇编程序的理解. 大小写转化(1) 通过上面的汇编程 ...

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

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

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

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

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

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

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

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

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

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

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

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

  8. 汇编语言——更灵活定位内存地址(基于8086CPU)

    ax用来存放数据,bx存放内存偏移地址,cx存放循环次数,dx? 汇编语言的注释是";" 栈用于暂存数据,因为寄存器有限 1. and和or指令 1.1 and:逻辑与指令,按位与 ...

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

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

最新文章

  1. 下列不属于python第三方库的是-python后端开发工程师考证试题
  2. mysql 共享锁和排他锁 意向锁 记录锁 Gap Locks Next-Key Locks 插入意向锁介绍
  3. 设置tableView的分割线从最左端开始
  4. java ee各类组件_在Java EE组件中使用骆驼路线
  5. Vue 2.0 入门系列(15)学习 Vue.js 需要掌握的 es6 (2)
  6. 使用Axios拦截器打印前端请求日志和后端后返回日志
  7. 【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant
  8. 暴风影音彻底凉凉!土豆、乐视、pps、风行曾经也辉煌过
  9. eclipse中birt插件使用_eclipse安装birt插件
  10. Linux下二进制包安装postgresql10.4
  11. python import自定义模块方法
  12. zookeeper入门及进阶
  13. 电脑丢失api-ms-win-core-libraryloader-|1-1-1.dll怎么办
  14. iOS 屏幕适配 X XR XS XSMax 尺寸
  15. Error: pngquant failed to build, make sure that libpng-dev is installed
  16. Echarts中国地图json文件,去除诸岛
  17. 低级程序员和高级程序员的区别
  18. Top-Down Bottom-Up
  19. JAVA代码实现扫码购带圆图二维码生成
  20. unity3d中ScriptingBackend选择mono和il2cpp的区别

热门文章

  1. D3.js音乐可视化
  2. js判断客户端是PC端还是移动端访问
  3. 【计算机考研】从N非本科到考研上岸一线211的心路历程
  4. [svn]最常用、频用的10个命令
  5. 如何批量生成文件夹并命名
  6. 热词解析(9) — hangry
  7. springboot基于JAVA的电影推荐系统的开发与实现 附源码-毕业设计112306
  8. aoa定位算法matlab仿真,基于信号到达角度(AOA)的定位算法研究
  9. [MODIS数据处理#9]例四:基于MCD12Q2数据集初步分析中国植被物候空间分布特征
  10. R语言作图——Pie chart(饼图)