本章节主要应用
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,