不同的寻址方式的应用——将每行单词的前X个字母改为大写

编程,将data段中每个单词的前4个字母改为大写
在这里插入图片描述
在这里插入图片描述
代码如下:

;将data段每个单词的前四个字母改为大写字母
assume cs:code,ss:stack,ds:data
stack segment
	dw 0,0,0,0
	dw 0,0,0,0
	dw 0,0,0,0
	dw 0,0,0,0
stack ends
					;非常重要!!!↓
data segment
	 ; '0123456789ABCDEF'		;数据在内存中分布不同——》
					;会导致我们编写代码的时候,需要用不同的访问内存的方式去访问这些数据
	db '1. display      '
	db '2. brows        '
	db '3. replace      '
	db '4. modify       '
data ends

code segment
	start:
		mov ax,stack
		mov ss,ax
		mov sp,32

		mov ax,data
		mov ds,ax

		mov bx,0

		mov cx,4;要处理四行
	;下面是loop的双重嵌套
	uprow:	
		push cx
		mov cx,4 ;前四个英语字母
		mov si,0

	upletter:
		mov al,ds:[bx+3+si]  ;可以体现出数据在内存中从哪里开始  逻辑清晰 阅读方便 偏移思想
		and al,11011111b
		mov ds:[bx+3+si],al
		inc si
		loop upletter

		pop cx
		add bx,16
		loop uprow

		mov ax,4c00h
		int 21h
code ends
end

在这一章中,我们主要讲解了更灵活的寻址方式和一些编程的方法,主要内容有

  • 寻址方式[bx(或si、di)+idata]、[bx+si(或di)]、[bx+si(或di)+idata]的意义和应用
  • 二重循环问题的处理
  • 栈的应用
  • 大小写转化的方法
  • and or指令

之所以重视寻址方式这个问题,是因为寻址方式的恰当应用,使我们可以以更合理的结构来看待所要处理的数据。而所要处理的看似杂乱的数据设计一种清晰的数据结构是程序设计的一个关键问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值