王爽汇编语言 实验5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(1).1
  当debug未执行我们的代码段指令时,从075A:0000开始的256字节是PSP段(之前的实验中已经进行过相关解释),而此时我们定义的数据是从075A:0100开始存放的。这个时候DS可能只是被初始化为075A(SS,CS同理被初始化)
在这里插入图片描述
  此时的DS段内容如下:
在这里插入图片描述
在这里插入图片描述
  而当使用-g 001d执行完我们的代码段指令后,会发现DS,CS,SS段的段地址已经发生了变化:
在这里插入图片描述
  DS段内容相应地变成了(注意和未执行指令时的DS段内容对比):
在这里插入图片描述
(1).2
实验结果:
在这里插入图片描述
(1).3假设code段地址为X,则data段地址为X-2,stack段地址为X-1
(2).1和(2).2
实验结果:
在这里插入图片描述
(2).3假设code段地址为X,则data段地址为X-2,stack段地址为X-1
(2).4如果段中占用N个字节,则程序加载后,实际占有空间为N/16上取整×16(简而言之就是如果没满的话,用0补满该程序对应的机器码所占用的最高地址空间的16字节空间)
(3).1
实验结果:
在这里插入图片描述
(3).2
实验结果:
在这里插入图片描述
(3).3 假设code段地址为X,则data段地址为X+3,stack段地址为X+4。
(4)不指明程序入口,那么程序会直接从最开始运行,所以只有程序(3)可以正常运行
(5)

assume cs:code

a segment
	db 1,2,3,4,5,6,7,8
a ends

b segment
	db 1,2,3,4,5,6,7,8
b ends

c segment
	db 0,0,0,0,0,0,0,0
c ends

code segment

start:
	mov ax,a
	mov ds,ax
	mov bx,0
	
	mov ax,b
	mov es,ax
	mov si,0
	mov di,16

	mov cx,8
s:
	mov al,ds:[bx]
	add al,es:[si]
	mov es:[di],al
	inc bx
	inc si
	inc di
	loop s

	mov ax,4c00h
	int 21h

code ends

end start

实验结果:
在这里插入图片描述
(6)

assume cs:code,ss:b

a segment
	dw 1,2,3,4,5,6,7,8,9,0ah,0bh,0ch,0dh,0eh,0fh,0ffh
a ends

b segment
	dw 0,0,0,0,0,0,0,0
b ends

code segment

start:
	mov ax,a
	mov ds,ax
	
	mov ax,b
	mov ss,ax
	mov sp,10h
	
	mov bx,0
	mov cx,8
s1:
	mov ax,ds:[bx]	
	push ax
	add bx,2
	loop s1

	mov ax,4c00h
	int 21h

code ends

end start

实验结果:
在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Polaris_T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值