目录:https://blog.csdn.net/qq_43098197/article/details/12453240
and
:与运算指令
or
:或运算指令
大小写转换:
-
转大写
A 41 01000001 a 61 01100001
第 5 位(从0开始)改为 0,其它不变。
-
转小写
第 5 位(从0开始)改为 1,其它不变。
双层循环:
...
mov cx, 4 ; 外层循环次数
outer: ;????? ; 这里需要保存外层循环的次数 cx
;外层循环的其它汇编指令 xxx
mov cx, 3 ; 内存循环次数(上面若不保存外层 cx,则内层会覆盖外层)
inner: ;内存循环的其它汇编指令...
loop inner
;????? ; 还原外层 cx
loop outer
...
?
处可以填写:
-
使用一个寄存器临时用来存储
cx
,mov dx, cx
保存,mov cx, dx
还原。缺点: 寄存器是有限的,若所有寄存器都有用,则这方法不行。
-
申请数据内存空间时,多开一个空间用来存放
cx
,mov ds:[X], cx
保存,mov cx, ds:[X]
还原。缺点: 需要记住这个开辟的空间地址。
-
申请一段栈空间,使用
push cx
保存,pop cx
还原。(常用)
SI 和 DI 寄存器:
si
和di
是 8086CPU 中和 bx 功能相近的寄存器。si
和di
不能分成两个 8 位寄存器。
几种灵活的寻址方式:
-
[X]
:常数 -
[bx]
:bx 段寄存器 -
[bx + X]
:bx 段寄存器 + 常数 -
[bx + si(或di)]
:… -
[bx + si(或di) + X]
:…