第七章 更灵活的定位内存地址的方法

实验6:实践课程中的程序

(2)编程,完成问题7.9中的程序(代码中的数据段中每行的单词前四位字母大写)
assume cs:code,ds:datasg,ss:stacksg

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

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

code segment
start:
	mov ax,datasg
	mov ds,ax
	mov cx,4

	mov di,0 ; row start position
	mov bx,3 ; column start position
r:
	push cx
	mov cx,4
c:
	mov al,[di+bx]
	and al,11011111B
	mov [di+bx],al
	inc bx
	loop c
		
	mov bx,3
	add di,10H
	pop cx
	loop r		

	mov ax,4c00h
	int 21h
code ends

end start
  1. 通过and逻辑与指令,将word的第六位改为0即为大写字母的二进制码
  2. 通过bx & di寄存器控制好内外循环的起始位置
  3. 利用stack来暂存寄存器的值,防止寄存器不够使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值