实验内容:

(1)将datasg段中每个单词的头一个字母改成大写字母。

datasg段中的数据为:

(2)

将datasg段中每个单词的字母改成大写字母。

datasg段中的数据为:

ibm
dec
dos
vax

(3)

将datasg段中每个单词的前四个字母改成大写字母

datasg段中的数据为:

(1)
变量+常量的方式定位内存地址:

代码如下:

assume cs:codesg,ds:datasgdatasg segmentdb '1. file         'db '2. edit         'db '3. search       'db '4. view         ' db '5. options      'db '6. help         '
datasg endscodesg segment
start:  mov ax,datasgmov ds,axmov bx,0mov cx,6s:    mov al,[bx+3]and al,11011111bmov [bx+3],aladd bx,16loop smov ax,4c00hint 21h
codesg ends
end start

(2)

用ds保存cx的值,以达到双层循环的效果。

代码如下:

assume cs:codesg,ds:datasgdatasg segmentdb 'ibm             'db 'dec             'db 'dos             'db 'vax             '
datasg endscodesg segment
start:  mov ax,datasgmov ds,axmov bx,0mov cx,4s0: mov dx,cxmov si,0mov cx,3s:   mov al,[bx+si]and al,11011111bmov [bx+si],alinc siloop s0add bx,16mov cx,dxloop s0mov ax,4c00hint 21hcodesg ends
end start

用内存保存cx

代码如下:

assume cs:codesg,ds:datasgdatasg segmentdb 'ibm             'db 'dec             'db 'dos             'db 'vax             'db 0                ;定义一个字,用来存放cx
datasg endscodesg segment
start:  mov ax,datasgmov ds,axmov bx,0mov cx,4s0: mov ds:[40h],cxmov si,0mov cx,3s: mov al,[bx+si]and al,11011111bmov [bx+si],alinc siloop s0add bx,16mov cx,ds:[40h]loop s0mov ax,4c00hint 21hcodesg ends
end start

最好的处理方式 - 栈:

代码如下:

assume cs:codesg,ds:datasg,ss:stacksgdatasg segmentdb 'ibm             'db 'dec             'db 'dos             'db 'vax             '
datasg endsstacksg segmentdw 0,0,0,0,0,0,0,0
stacksg endscodesg segment
start:  mov ax,stacksgmov ss,axmov sp,16mov ax,datasgmov ds,axmov bx,0mov cx,4s0:   push cxmov si,0mov cx,3s:   mov al,[bx+si]and al,11011111bmov [bx+si],alinc siloop sadd bx,16pop cxloop s0mov ax,4c00hint 21h
codesg ends
end start

(3)
代码如下:

assume ds:datasg,ss:stacksg,cs:codesgstacksg segmentdw 0,0,0,0,0,0,0,0
stacksg endsdatasg segmentdb '1. display......'db '2. brows........'db '3. replace......'db '4. modify.......'
datasg endscodesg segment
start:  mov ax,datasgmov ds,axmov ax,stacksgmov ss,axmov sp,16mov bx,0mov cx,4s:    push cxmov cx,4mov si,0s0:mov al,[bx+si+3]and al,11011111bmov [bx+si+3],alinc siloop s0add bx,16pop cxloop smov ax,4c00hint 21h
codesg ends
end start

[汇编语言]实验:应用更灵活的寻址方式来定位内存地址相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 用shell脚本监控系统
  2. 基于视觉和惯性传感器的移动机器人手遥操作系统
  3. 数据库设计中的9大常见错误
  4. android edittext 光标监听,Android EditText监听器,用于光标位置更改
  5. C++class类(I)
  6. 上公厕上一半突然被拽出来......
  7. jdk12源代码文件_在JDK 11中启动单文件源代码程序
  8. vmware安装黑苹果教程
  9. EXCHANGE RBAC(基于角色的访问控制)管理工具
  10. java dump分析工具_java线程dump分析工具
  11. bzoj2442codevs4654[Usaco2011 Open]修剪草坪
  12. Microsoft Teams免费版本初体验
  13. GPT磁盘如何正确分区以及UEFI引导怎么修复?
  14. 2017年全国大学生电子设计竞赛 猜题了
  15. 结合断线修复方法的乡村道路提取
  16. linux 可视化分区,可视化linux块设备的工具(分区,LVM PV,LV,mdadm设备……)
  17. Latex CJK,tex使用中文
  18. 【收藏】构建属于自己的云端知识库——语雀
  19. Anaconda prompt 提示系统找不到指定路径
  20. R语言ggplot2可视化:patchwork包将一个ggplot2可视化结果和一个plot函数可视化结果横向组合起来形成最终结果图、两个可视化的组合结果对齐、并为组合图像的每个子图添加标题

热门文章

  1. 回溯算法之购物车(0-1 背包问题)
  2. linux之修改dns以及用netmask修改ip和网关
  3. 微信企业号开发之如何建立连接
  4. python任务调度平台 界面_分布式任务调度平台XXL-JOB
  5. 静止的人如何看待高速运动的球?
  6. 代言男科、站台微商、变身神棍....这些科学家被捧了几十年,黑历史曝光后,让人三观尽毁......
  7. 世界上最奇特的国界线,万万没想到...
  8. 史上最黑科技 | 人造肌肉、DNA折叠、柔性外骨骼…
  9. 在职场中,长得漂亮真的有用吗?
  10. python win32ui选取文件夹_最全 Python 算法实现资源汇总!