and al,11011111b ASC字母转换为大写(也可写00DFH)
or al,00100000b ASC字母转换为小写(也可写0020H)
用寄存器表示内存地址,只能使用BX/BP/SI/DI四种寄存器
复用只能使用BX+SI/BX+DI/BP+SI/BP+DI四种形态
BX和BP不能复用的原因可能是在没有特殊指明的时候默认段地址不同
有BX时候默认为DS的段地址,有BP时默认为SS的段地址
SI和DI不能复用的原因不明...


- [tankle] 感谢楼主 03/08 19:34
- [zhy_zhy] 博主说的很详细,终于知道自己错在哪里了…… 07/06 15:19
- [flyincold] 唉,我第一次也错在第一题了 05/21 14:11
- [daydream] 看了,上面的精彩言论,顿时茅塞顿开啊!!! 03/05 09:13
- [lycwg] 哦,不好意思,刚才是我搞错了。FFFF0H-FFFFH=EFFF1H 02/08 22:10
- [lycwg] 2、 物理地址为ffff0H的内存单元的偏移地址可能为ffffH。 FFFF0H 02/08 21:47
- [游客] 正确。 02/05 15:06
- [游客] s:mov cx,ds:[bx];把查找的位置的字写入CX mov ch,0;去 02/05 15:02
- [younggay] 分析的都正确。 02/02 15:53
- [b2311057] 重新检查,发现空格在table段已经定义好了,画蛇添足又重新定义一遍空格,修改后代码更加精炼。 论 01/20 13:14
[2009-01-05 06:36] 第七八章要记住的一些数据
阅读全文 |
评论次数(0) |
浏览次数(614) |
所属类型(关键备忘)
[2008-12-24 21:40] 记住DEBUG的常用命令
寄存器操作:
R:查看、改变寄存器的内容[register]
D:查看内存中的内容[dump]
E:机器码写入内存[enter]
A:汇编指令写入内存[assemble]
U:显示内存中的汇编指令[unassemble]
T:执行一条机器指令[trace]
P:执行循环、重复的字符串指令、软件中断或子例程[proceed]...
R:查看、改变寄存器的内容[register]
D:查看内存中的内容[dump]
E:机器码写入内存[enter]
A:汇编指令写入内存[assemble]
U:显示内存中的汇编指令[unassemble]
T:执行一条机器指令[trace]
P:执行循环、重复的字符串指令、软件中断或子例程[proceed]...
阅读全文 |
评论次数(0) |
浏览次数(292) |
所属类型(关键备忘)
[2008-12-24 19:53] 一定要记住的一些计算结果
1(Byte)=8(bit)
1个存储单元=1字节=8位
2^1=2
2^2=4
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128
2^8=256
2^10=1024
2^16=65536
这几个结果一定要记住!...
1个存储单元=1字节=8位
2^1=2
2^2=4
2^3=8
2^4=16
2^5=32
2^6=64
2^7=128
2^8=256
2^10=1024
2^16=65536
这几个结果一定要记住!...
阅读全文 |
评论次数(0) |
浏览次数(284) |
所属类型(关键备忘)
[2008-12-24 18:26] 第一章要注意的事情
对地址来说16位总线就是2的16次方=65536个地址位。
而对数据来说1024个字节还要换算成位:1024*8=8192位
那么16位总线的数据总线需要8192/16=512次才能传输完。
不换算成位就会出错,这是容易混淆的地方。
还有就是要死背的是8086的内存地址空间分布:
00000-9FFFF:主存储器地址空间(RAM:可读写)
A0000-BFFFF: 显存地址空间(显存RAM:可读写)
C0000-FFFFF: 各类ROM地址空间(写入无效)...
而对数据来说1024个字节还要换算成位:1024*8=8192位
那么16位总线的数据总线需要8192/16=512次才能传输完。
不换算成位就会出错,这是容易混淆的地方。
还有就是要死背的是8086的内存地址空间分布:
00000-9FFFF:主存储器地址空间(RAM:可读写)
A0000-BFFFF: 显存地址空间(显存RAM:可读写)
C0000-FFFFF: 各类ROM地址空间(写入无效)...
阅读全文 |
评论次数(0) |
浏览次数(281) |
所属类型(关键备忘)
页码数(1):
1