第三章总结
寄存器(内存访问)
1.内存中字的存储
默认采用小端法:高地址内存单元中存放字型的高位字节,低地址内存单元中存放字型数据的低位字节。
( 内存以字节为单位 字=2个字节)
2.DS寄存器
描述一个物理地址时可以写成:DS*16+偏移地址
例如:mov ax,[0] //这条指令就是把默认的DS值*16+0的偏移地址中的数据给了ax
3.MOV ADD SUB
① mov指令的形式:
mov指令的注意事项:
1.两个操作数长度要一致
2.如果最高位是十六进制的a-f,前面要加0
3.两个内存单元之间不能直送传送数据
4.mov不能修改CS IP的值
5.两个段寄存器之间不能直接传送。不能把常数送到段寄存器。
②ADD
add指令的操作数不能同时是内存单元
add指令的操作数不能是段寄存器
③SUB
两个内存单元不能直接使用sub指令相减。
sub指令的操作数不能是段寄存器。
4.栈
1.基本知识
栈底取栈区最高地址单元的前一个单元
入栈:①栈顶-2->栈顶 ②存入数据
出栈:①取出数据 ②栈顶+2->栈顶
栈为空时,栈顶指向栈底+2
2.SS和SP
3.push pop
指令形式:
注意:
入栈和出栈均以字为单元。
操作对象不能是常数。
pop段寄存器不能是CS和SS。
学完本章后,我们可以使用栈的特性来轻松完成数据间的数值转换。
还要在编写代码时注意栈越界的问题。