王爽 《汇编语言》 读书笔记 七 更灵活段定位内存地址段方法

本文是王爽《汇编语言》的读书笔记,重点讲解了使用不同寻址方式处理内存地址,如[bx + data]、[bx + si]等,并探讨了大小写转换的方法,包括and和or指令的应用。通过举例和练习,阐述了如何在没有条件判断的情况下进行大小写转换,以及如何实现字符串复制和修改。
摘要由CSDN通过智能技术生成

本章节主要应用

a. 寻址方式[bx + data], [bx +si], [bx + si +idata]

b. 二重循环处理的问题

c. 栈的应用

d. 大小写转换的问题

e. and, or指令

7.1 and 和 or 指令

1)and 逻辑与

mov al, 01100011B

and al,  00111011B

al = 00100011B

2)or 逻辑或

mov al, 01100011B

and  al, 00111011B

al = 01111011B


7.2 关于ASCII码

7.3 以字符形式给出段数据

assume cs:code, ds:data
data segment
	db 'unIX'
	db 'foRK'
data ends

code segment
start:	mov al, 'a'
		mov bl, 'b'
		mov ax, 4c00h
		int 21h
code ends
end start

用debug的d命令查看


7.4 大小写转换的问题

注意这道题目的思想非常之经典,虽然问题简单。但是接发巧妙在没有接触到条件判断之前一样进行大小写转换

将datasg的第一个字符串转化为大写,第二个转化为小写

原文上的解题分析:

如果一个问题的解决方案,使我们陷入一种矛盾之中。那么,很可能是我们考虑问题的出发点有来问题,或是说,我们起始运用的规律并不合适。

最终书上采用了位运算的方法 and 11011111B  转换位大写

or 00100000B 转换为小写

代码如下

assume cs:code, ds:datasg

datasg segment
	db 'BaSiC'
	db 'iNfOrMaTiOn'
datasg ends
code segment
start:	mov ax, datasg
		mov ds,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值