汇编语言-寻址方式的综合应用

1.  

这些数据被存放在seg段中偏移地址60H起始的位置,分别存储了3个字节的公司名称;从seg:60+3开始以ASCII字符的

的形式存储了9个字节的总裁姓名,然后是在seg:60+0C处存储了一个字形数据,在seg:60+0E起始处存放了公司的收入,从seg:60+10处存储了3个字节的产品名称。

现在进行修改:

排名上升至38  (位置:seg:60+0C)

DEC的收入增加了70亿美元(位置:seg:60+0E)

产品变为VAX系列计算机。(位置:seg:60+10)

修改程序:

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
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语言程序
 

#include <stdio.h>
struct company {//定义一个公司的结构体
	char cn[3];//公司名称
	char hn[9];//总裁的名字
	int pm;//排名
	int  sr;//收入
	char cp[3];//著名产品
	
};
struct company dec=
{
	"DEC","KEN Olsen",137,40,"PDP"
};//定义一个公司的记录变量,内存中将村有一条公司的记录
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';
	return 0;
}

 

运行结果:

其中:mov  word ptr [bx+0cH],38  可以写成:mov  word ptr   [bx].0cH,38  

mov  byte  ptr [bx+10H+si],'V'   可以写成:  mov  byte  ptr [bx].10H[si],'V'

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值