1.[bx]的含义
[bx]表示一个内存单元,它的偏移地址在bx中,比如:mov ax,[bx]会将一个内存单元的内容送入ax,这个内存单元的长度是2个字节,存放一个字,偏移地址存放在bx中,段地址在ds中。mov al,[bx]则是移动半个字。
2.loop指令
loop 标号
CPU执行loop指令的时候分两步:
1.(cx)=(cx)-1
2.判定cx中的值,不为零则转至...
分类:
其他好文 时间:
2014-07-22 23:01:15
阅读次数:
263
1.操作符offset
操作符offset在汇编语言中是由编译器处理的符号,他的功能是取得标号的偏移地址
比如下面程序:
assume cs:codesg
codesg segment
start:mov ax,offset start
相当于mov ax,0
s:mov ax,offset s
相当于mov ax,3
codesg ends
end start
在上...
分类:
其他好文 时间:
2014-07-22 22:59:34
阅读次数:
506
TM机就是TINY语言编译器编译之后的汇编代码的运行环境。TM机的主要功能是将TM的汇编代码读入和执行,它具有一般计算机类似的精简指令级RISC。TM汇编语言和一般的Intel汇编语言差不多,包括寄存器寻址、操作符等,很容易理解。一条典型的代码如:LD 0,10(1),这里面10(1)就是寄存器1中地址为基址,10为偏移地址,寻址结果放入寄存器0。三目操作符:MUL 0,1,0表示将寄存器1和寄存...
分类:
其他好文 时间:
2014-05-18 18:24:00
阅读次数:
275
最近一个需求里面需要实IP升序排序,用了qsort,结果是内部排序,甚至感觉排序结果不可预测性,于是自己写了一个外部排序。需求如下:一个指针里面有N条记录,每条记录包含:IP,偏移地址,保留位,均占4个字节,且这N条记录需要按照升序排序。算法如下:for
(int i = 1; i = i; j--...
分类:
其他好文 时间:
2014-05-09 18:16:24
阅读次数:
360
1.CPU根据中断码如何找到中断处理程序
要定位中断处理程序,就需要找到中断处理程序的段地址和偏移地址,如果根据中断码找到他们?这就引入中断向量表,CPU用8位的中断类型码通过中断向量表找到相应的中断处理程序的入口地址。
2.使用中断类型码找到中断向量,并用它设置CS和IP,这个操作是由CPU硬件自动完成的。这个过程成为中断过程:
(1)从中断信息中取得中断类型码
(2)标志寄存器的值入栈...
分类:
其他好文 时间:
2014-05-05 12:57:22
阅读次数:
318
在实模式下寻址的时候,”段寄存器+偏移地址”进过转换计算以后得到的地址是“物理地址”,也就是在物理内存中的实际地址,而在保护模式下,“段选择器+偏移地址”转换后的地址被称为“线性地址”而不是“物理地址”,那么线性地址就是物理地址吗?
答案可能是,也可能不是,这取决于80386的内存分页机制是否被使用。
为什么有内存分页机制?
我们回顾一下,单任务的DOS系统中,一个应用程序可以使用所有的空闲...
分类:
其他好文 时间:
2014-05-03 20:56:39
阅读次数:
368