汇编语言(王爽第三版)实验六

实验六

题目预览

  1. 将课程中所有讲解过的程序上级调试,用Debug跟踪其执行过程,并在过程中进一步理解所讲内容。(略)
  2. 编程,完成问题7.9中的程序

1(略)

(略)

2

编程,完成问题7.9中的程序

问题7.9:
编程,将datasg段中的每个单词的前4个字母改为大写字母

assume cs:codesg,ss:stacksg,ds:datasg

stacksg segment
	dw 0,0,0,0,0,0,0,0
stacksg ends

datasg segment
	db '1. display      '
	db '2. brows        '
	db '3. replace      '
	db '4. modify       '
datasg ends

codesg segment

start:
	
codesg ends

end start			

分析
(1)将这4个字符串看成一个4行16列的二维数组,按照要求,我们需要修改每个单词的前4个字母,即二维数组的每一行的3~6列。双重循环,外层遍历的行0~3行,内层遍历的列3~6列。
(2)用栈暂存数据。

assume cs:codesg,ss:stacksg,ds:datasg

stacksg segment
	dw 0,0,0,0,0,0,0,0
stacksg ends

datasg segment
	db '1. display      '
	db '2. brows        '
	db '3. replace      '
	db '4. modify       '
datasg ends

codesg segment

start:
	mov ax,stacksg
	mov ss,ax
	mov sp,16
	mov ax,datasg
	mov ds,ax
	mov bx,0

	mov cx,4
 s0:
 	push cx
 	mov si,3
 	mov cx,4
  s:
  	mov al,[bx+si]
  	and al,11011111b
  	mov [bx+si],al
  	inc si
  	loop s

  	add bx,16
  	pop cx
  	loop s0

  	mov ax,4c00H
  	int 21H

codesg ends

end start			

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值