调用与返回
调用
段内调用
直接CALL子程序名/AX,BX等16位寄存器/一个字大小的单元
段间调用
直接CALL子程序名/一个双字大小的单元
返回
段内返回
弹出送IP
段间返回
弹出送CS和IP
带弹出值的返回
汇编指令格式为:RET n
其中n为一个立即数,长度为2字节。并且是一个偶数。
(1)从堆栈弹出1个字送IP(段内返回)或2个字送IP和CS;
(2)执行 SP<=(SP)+n 。将堆栈中已经用过的参数(n个字节)弹出舍去.
参数的传递
堆栈的使用
- 在CALL的时候,就已经将返回的IP压入堆栈了,这个容易被忽视
- 堆栈中处理都是2个字节2个字节处理
- 要想跳跃访问堆栈只能用BP
地址表的使用
代码转换
ASCII码与int类型数之间的相互转换
ASCII的char转int
int转ASCII的char
- 16位无符号二进制数表示的十进制数范围为0—65535,需要分别求出万位、千位、百位、十位和个位的值。
- 从16位二进制数中能够减10000的次数就是万位的值,剩下的数再用1000去减,这样依次进行下去,直至个位。
二进制转十进制
用10去除二进制数,所得余数为十进制数的个位。其商再除以10,所得余数为十位,如此反复,直到商为0。