《汇编语言》- 读书笔记 - 第7章-实验6 实践课程中的程序

1. 将课程中所有讲解过的程序上机调试,用 Debug 跟踪其执行过程,并在过程中进一步理解所讲内容。

《汇编语言》- 读书笔记 - 第7章- 更灵活的定位内存地址的方法

2. 编程,完成问题 7.9 中的程序。

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

stacksg segment				;16字节
	dw 0,0,0,0,0,0,0,0
stacksg ends

datasg segment				;64字节
	db '1. display      '	;16字节
	db '2. brows        '	;16字节
	db '3. replace      '   ;16字节
	db '4. modify       '   ;16字节
datasg ends

codesg segment			
start:	mov ax, stacksg		
		mov ss, ax			; 定义栈段
		mov sp, 16			; 定义栈顶指针
		mov ax, datasg		
		mov ds, ax			; 定义数据段
		
		mov bx, 0			; 行偏移。相当于外层循环的i
		mov cx, 4			; 外层循环,对应4行字符。	
 fori: 	push cx				; 外层剩余循环次数压栈保存
		mov si,	0
		mov cx, 4			; 内层循环,对应要处理4个字母
		
 forj: 	mov al, [bx+si+3]	; 字符位置[bx行+从第3个字符开始+当前处理第si个字符]
		and al, 11011111b	; 转大写
		mov [bx+si+3], al	; 送回内存
		inc si				; j++ 下一个字符
		loop forj			; cx--; cx != 0 继续循环,内层循环结束

		add bx, 16			; i++ 下一行(每行16所以要偏移16字节)
		pop cx				; fori 执行完,回到forj
		loop fori			; cx--; cx != 0 继续循环,外层循环结束
		
		mov ax, 4c00h
		int 21h
codesg ends                   
end start

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笑虾

多情黯叹痴情癫。情癫苦笑多情难

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

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

打赏作者

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

抵扣说明:

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

余额充值