汇编语言第六章-包含多个段的程序-课后题

5、程序如下,编写code段中的代码,将a段和b段中的数据依次相加,将结果存到c段中。

db定义字节类型变量,一个字节数据占1个字节单元

dw定义字类型变量,一个字数据占2个字节单元

实现源程序:
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 cx,8
      s:
	  ;bx用于保存ds的偏移索引
	  mov bx,cx
	  sub bx,1
	  ;将a段中的值保存在al中
	  mov ax,a
	  mov ds,ax
	  mov al,[bx]
	  ;将b段中的值和a段中的对应值相加
	  mov dx,b
	  mov ds,dx
	  add al,[bx]
	  ;将ax的值保存到c段中
	  mov dx,c
	  mov ds,dx
	  mov [bx],al
	  loop s
	  mov ax,4c00H
	  int 21H
code ends
end start
运行截图:

初始情况下a,b,c段数据存储情况:

运行结束后a,b,c段数据存储情况:

6、程序如下,编写code段中的代码,用push指令将a段中的前8个字型数据,逆序存储到b段中。
源程序:
assume cs:code

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

b segment
	db 0,0,0,0,0,0,0,0
b ends

code segment
start:
	  ;栈顶指针初始化
	  mov ax,b
	  mov ss,ax
	  mov sp,10H
	  ;data段初始化
	  mov ax,a
	  mov ds,ax
	  mov cx,8
      s:
	  ;bx用于保存即将压入栈字的索引
	  mov bx,8
	  sub bx,cx
	  add bx,bx
	  ;将bx索引处数据压入栈
	  push ds:[bx]
	  loop s
	  mov ax,4c00H
	  int 21H
code ends
end start
运行截图:

初始情况下a,b段数据存储情况:

运行结束后a,b段数据存储情况:

重要:刚得知我好朋友过华理复试线了,祝她早日上岸脱离苦海。

参考文献:汇编语言(第四版)王爽著

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值