美文网首页汇编语言
寻址方式的综合应用

寻址方式的综合应用

作者: 柠檬就是酸 | 来源:发表于2018-09-03 12:23 被阅读0次

问题

1.png 2.png 3.png

分析

要修改的数据:

1、DEC公司的排名字段

2、DEC公司的收入字段

3、DEC公司的产品字段,这个是字符的

分析内存单元,可以看出来每个数据占用了多大的空间

方法

1、首先确定DEC公司记录的位置,R=seg:60

2、确定访问的内容在记录中的位置

3、确定排名字段在记录中的位置,也就是0CH

4、修改R + 0CH的数据

5、修改R + 0EH的数据

6、10H处的数据是字符,所以要进一步确定每一个字符在字符串中的位置,一个字符一个字节

​ 所以修改R + 10H + 0,R + 10H + 1,R + 10H + 2 处的数据

代码

mov ax,seg
mov ds,ax
mov bx,60h                  ;确定记录的地址:ds:bx
mov word ptr [bx+0ch],38  ;排名字段改成38
add word ptr [bx+0eh],70  ;收入字段增加70
​
mov si,0                  ;用si来定位产品字符串中的字符
mov byte ptr [bx+10h+si],'V'
inc si
mov byte ptr [bx+10h+si],'A'
inc si
mov byte ptr [bx+10h+si],'X'

这是实现这个功能的汇编代码,可以用C语言来写出来:

struct company
{
 char cn[3];  //定义公司的名称
 char hn[9];  //定义总裁姓名
 int pm;      //排名
 int sr;      //收入
 char cp[3];  //著名产品
};
​
struct company dec = {"DEC","Ken Olsen",137,40,"PDF"};
​
int main()
{
 int I;
 dec.pm = 38;
 dec.sr = dec.sr + 70;
 i = 0;
 dec.cp[i] = 'V';
 I++;
 dec.cp[i] = 'A';
 I++;
 dec.cp[i] = 'X';
}

对比一下二者的代码:

mov ax,seg
mov ds,ax
mov bx,60h 
mov word ptr [bx+0ch],38  ;C: dec.pm = 38;
add word ptr [bx+0eh],70  ;C: dec.sr = dec.sr + 70;
​
mov si,0                  ;C: i = 0;
mov byte ptr [bx+10h+si],'V'  ;C: dec.cp[i] = 'V';
inc si                      ;C: i++;
mov byte ptr [bx+10h+si],'A'  ;C: dec.cp[i] = 'A';
inc si                      ;C: i++;
mov byte ptr [bx+10h+si],'X'  ;C: dec.cp[i] = 'X';x

总结

1、可以看出来,8086CPU提供的如[bx+si+idata]的寻址方式为结构化数据的处理提供了方便,使得我们可以在编程的时候从结构化的角度去看待所要处理的数据

2、一般来说,我们可以用[bx+si+idata]的方式来访问结构体中的数据,用bx来定位整个结构体,用idata定位结构体中的某一个数据项,用si定位数组项中的每个元素,可以这样子写:

[bx].idata、[bx].idata[si]

相关文章

  • 寻址方式的综合应用

    问题 分析 要修改的数据: 1、DEC公司的排名字段 2、DEC公司的收入字段 3、DEC公司的产品字段,这个是字...

  • 8086汇编(20)寻址方式的综合运用

    寻址方式的综合运用 关于DEC公司的一条记录(1982年)如下. 公司名称: DEC 总裁姓名:Ken Olsen...

  • 寻址方式

    寄存器寻址 不涉及内存,将寄存器 eax 中的内容放到寄存器 edx 中: 立即寻址 不涉及内存,将立即数放到 e...

  • 寻址方式

    地址码编码由寻址方式决定 地址可能是寄存器编号,如果操作数在寄存器中 也有可能是存储单元的单元地址,如果操作数在存...

  • 寻址方式

    寻址方式(或编址方式)指的是确定本条指令的数据地址及下一条要执行的指令地址的方法。 (1)立即数寻址 所需的操作数...

  • 8086 指令系统寻址方式

    整理汇编语言学习笔记,回顾一下8086 指令系统的寻址方式。 寻址与指令 寻址方式(Addressing Mode...

  • Hash表

    数组(顺序表)的特点:寻址容易,插入和删除困难;链表的特点:寻址困难,插入和删除容易。综合两者,做出一种寻址容易,...

  • 立即数寻址方式

    数据寻址方式:查找操作数或操作数存放位置的方法,不同于程序寻址方式。 数据寻址方式主要有3大类: 操作数包含在指令...

  • 寄存器寻址方式

    数据寻址方式:查找操作数或操作数存放位置的方法,不同于程序寻址方式。 数据寻址方式主要有3大类: 操作数包含在指令...

  • ARM笔记

    一、寻址方式 立即数寻址 如:MOV R0, #6;表示:R0 <- 6; 寄存器寻址(直接寻址) 如:ADD R...

网友评论

    本文标题:寻址方式的综合应用

    本文链接:https://www.haomeiwen.com/subject/vgubwftx.html