汇编语言(第三版)王爽著 的十二个实验:https://blog.csdn.net/OrangeHap/article/details/89791064

大小端 字节对齐

对于 arm,intel 这种 x86 构架的复杂指令 CPU,整数在内存中是倒着存放的,低地址放低位,高地址放高位,小端对齐。
但对于 unix 服务器的 CPU,更多是采用大端对齐的方式存放整数。

为什么会有 大端( 高尾端 ) 和 小端( 低尾端 )?

这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit。但是在C语言中除了8bit的 char之外,还有 16bit 的 short 型,32bit 的 long 型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着如何将多个字节安排的问题。因此就导致了 大端存储模式小端存储模式。例如一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122,那么0x11为高字节,0x22为低字节。对于大端模式,就将0x11放在低地址中,即0x0010中,0x22放在高地址中,即0x0011中。小端模式,刚好相反。我们常用的X86结构是小端模式,而KEILC51则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。

参考:http://www.cnblogs.com/graphics/archive/2011/04/22/2010662.html

  • 1. 大端序:数据的高位字节存放在地址的低端,低位字节存放在地址的高端
  • 2. 小端序:数据的高位字节存放在地址的高端,低位字节存放在地址的低端

记忆方式:

  1. 大端序:是按照数字的书写顺序进行存储的。
  2. 小端序:是颠倒书写顺序进行存储的。

涉及大小端的问题,可以记为:“小高高,小弟弟( 低低 ”。( 这是记小端模式的,有点黄,不过好记那么大端模式就和这个相反

[bx] 定位内存单元

7.5 [bx + idata] 定位内存单元

汇编代码验证:

assume cs:codesg, ds:datasgdatasg segmentdb 16 dup (0)    ;db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
datasg endscodesg segmentstart:        mov ax,datasgmov ds,axmov ax,190mov ds:[0],axmov ax,6mov ds:[2],axmov ax,0mov ax,ds:[0]mov bx,ds:[1]mov cx,ds:[2]mov ax, 4c00hint 21h
codesg ends
end start

运行截图:

7.6 使用 [bx + idata ] 方式进行 数组的处理

7.7  si 和 di 寄存器( 和 bx 功能相近的寄存器 )

使用 [ bx (si 或者 di ) + idata ] 方式,使程序变得更简单

7.8 [ bx + si ] 和 [ bx + di ]

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

7.10 不同寻址方式灵活应用

寻址方式 总结

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

  1. 王爽 汇编语言第三版 第10章 call 和 ret 指令 以及 子程序设计

    第10章 call 和 ret 指令 10.1 ret 和 reft 指令 call 和 ret 指令都是转移指令,他们都修改 IP,或同事修改 CS 和 IP .他们经常被共同来实现子程序的设计. ...

  2. 王爽 汇编语言第三版 第9章 转移指令的原理

    第九章  转移指令的原理 汇编代码: assume cs:codesgcodesg segments: mov ax,bx ; mov ax,bx 的机器码占两个字节mov si, offset sm ...

  3. 王爽 汇编语言第三版 第8章( 寻址方式 ) --- 数据处理的两个问题

    第八章    数据处理的两个基本问题 8.6 综合应用 示例代码 1: assume cs:codesg,ds:datasgdatasg segmentdb 1024 dup (0) datasg e ...

  4. 王爽 汇编语言第三版 第11章 标志寄存器

    条件码: ① OF(Overflow Flag)溢出标志,溢出时为1,否则置0.标明一个溢出了的计算,如:结构和目标不匹配. ② SF(Sign Flag)符号标志,结果为负时置1,否则置0. ③ Z ...

  5. 王爽 汇编语言第三版 问题 7.9 将 datasg 段中前4个字母变成大写(汇编中的双重循环)

    问题 7.9: 将 datasg 段中前 4 个字母变成大写 汇编代码: assume cs:codesg,ss:stacksg,ds:datasgstacksg segmentdb 0,0,0,0, ...

  6. 王爽汇编语言第三版答案

    转载自 https://blog.csdn.net/modiz/article/details/88776695 部分加上自己的分析,感谢 Modiz 汇编语言答案(王爽) 检测点1.1 (1)1个C ...

  7. 王爽 汇编语言第三版 课程设计 1

    From:https://www.cnblogs.com/Since-natural-ran/p/6938133.html 汇编语言-课程设计1: https://www.cnblogs.com/ts ...

  8. 王爽 汇编语言第三版 监测点9.2 监测点9.3 补全编程,利用jcxz指令,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,

    补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中. 而且,截图中给出了是字节.是8位,占通用寄存器的一半空间!区分出CL,CH! 为了区分 ...

  9. 王爽汇编语言第四版答案解析

    (暂停更新) 红色的是答案 目录 检测点 1.1 检测点 2.1 检测点 2.2 检测点 2.3 检测点 1.1 (1) 13 如果一个 cpu 有 n 根地址线,则可以说这个 cpu 的地址总线的宽 ...

最新文章

  1. 服务注册发现consul之四: 分布式锁之四:基于Consul的KV存储和分布式信号量实现分布式锁...
  2. 会议室管理前端页面_福州会议室钟联系方式
  3. 如何解决两个相邻的span中间空隙
  4. java jar包图片_jar包的图片不显示 求解
  5. AjaxUploader使用
  6. R语言观察日志(part12)--关于.Rprofile文件
  7. hdu4609 3idiots 三角形计数 FFT
  8. 机器学习02线性回归、多项式回归、正规方程
  9. 一些关于爱情的心理学事实
  10. 亿级流量架构服务降级,写得太好了!
  11. 一阶微分方程的物理意义_微分方程和积分方程有哪些典型的物理意义?实际中哪个更常用?...
  12. 前端项目添加自定义icont图标步骤
  13. 【转】基于C#的接口基础教程之五(1)
  14. 【MySQL】 insert into语句几种方式
  15. MATLAB画图中图形对象、文字标注、希腊字母显示等
  16. Chrome浏览器模拟4G网络
  17. CI Weekly #9 | 揭秘阿里 Docker 化实践之路
  18. matlap实现肺实质区域初始分割,去除肺部气管及背景
  19. TSC MH240 打印机驱动
  20. ThinkPad T470P 升级win10后指纹无法识别

热门文章

  1. 郑杰 | 如何拿回我们自己的医疗数据?
  2. 深度学习中不得不学的Graph Embedding方法
  3. 搜狗地图2016-Android-社招笔试题(包含Java基础部分)
  4. 论文学习12-Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data(CRF
  5. Git missing Change-Id in commit message footer解决方法
  6. WeStrom自定义设置修改快捷键
  7. 如何阻止button默认的刷新页面操作
  8. 日报 18/06/25 26
  9. 【编程开发】Python---列表
  10. 170905-MyBatis中的关系映射