- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 fork 函数定义
#define _syscall0(type,name) /type name(void) /{ /long __res; /__asm__ volatile ("int $0x80" / : "=a" (__res) / : "0" (__NR_##name)); /if (__res >= 0) / return (type) __res; /errno = -__res;
2008-09-03 14:00:00 239
原创 指针数组
typedef (*crw_ptr)(int rw,unsigned minor,char * buf,int count,off_t * pos);定义一个自定义的类型static crw_ptr crw_table[]={/* 定义了一个指向函数的指针数组 */ NULL, /* nodev */ rw_memory, /* /dev/mem etc */
2008-09-02 15:58:00 164
原创 利用typedef定义函数指针
typedef (*jiaohuan)(int x,int y);/*利用typedef定义函数指针 这个类型*/max(int x,int y){int z;if(x>y)z=x;else z=y;return(z);}main(){ jiaohuan p;/*如果前面利用typedef定义jiaohuan这个类型的话,需要在这里是int (*p)()定义p这个函数指针*/ int
2008-09-02 15:28:00 177
转载 函数指针
#include max(int x,int y){int z;if(x>y)z=x;else z=y;return(z);}main(){int max(int,int);/*int (*p)();*/int a,b,c;/*p=max;*/struct file_operation{int (*p)(int,int);}ceshi_operation={max};scanf("%d,%d",&
2008-09-01 16:25:00 100
转载 CX的值
在程序加载的时候,计算CX的值是通过段地址和偏移地址的变动来求得的。(1)如果程序只有一个段或者是程序中的最后一个段,那么在计算过程中,不涉及段地址的改变,即段地址不变,变的只是偏移地址,所以计算出来偏移地址改变量就是cx的值。(2)如果是多个段,计算的应该过程是这样的:比如说,整个程序拥有N(N>1)个段,这时CX的值为:前N-1个段占的字节 + 第N个段(即最后一个段)占的字节。其
2008-08-24 07:48:00 238
转载 第八章:阶段总结笔记
第八章:阶段总结笔记理清概念、夯牢基础、勤于复习、善于总结。这是我自学中习惯坚持的十六字方针。~0~第八章以后知识点将愈来愈难,但多数是介绍指令及与周边设备控制通信机制。因此扎扎实实地掌握前八章内容,才能更快地学懂学通后面知识,不然就会欲速则不达,俗语的磨刀不误砍柴功就是讲的这个道理。因此希望与我一样初学汇编的朋友,要认真地用自己的理解对前八章作一个深入的总结。一、数的表达2进
2008-08-21 09:52:00 136
原创 入栈问题
1将10000h-1000fh这段空间当作栈,初始状态是空的;2、设置AX=001AH,BX=001BH;3、将AX、BX中的数据入栈;4、然后将AX、bx清零;5、从栈中回复AX/bx原来的内容。MOV AX,1000MOV SS,AXMOV SP,00010MOV AX,001AMOV BX,001BPUSH AXPUSH BXSUB AX,AX ;将ax清零,也可用mov ax,0, 但
2008-08-19 10:50:00 152
原创 cpu如何知道栈顶的位置呢?
8086cpu中,有两个寄存器,段寄存器ss和寄存器sp,栈顶的段地址存放在ss中,偏移地址存放在sp中。任意时刻,ss:sp指向栈顶元素。push指令和pop指令执行时,cpu从ss和sp中得到栈顶的地址。
2008-08-19 10:31:00 490
原创 段地址*16+偏移地址=物理地址 的本质含义
段地址*16+偏移地址=物理地址 的本质含义是:cpu在访问内存时,用一个基础地址(段地址*16)和一个相对基础地址的偏移地址相加,给出内存单元的物理地址。
2008-08-18 18:23:00 355
原创 寄存器
8086cpu共有14个寄存器,这些寄存器是AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW.8086CPU的AX、BX、cx、dx四个寄存器都可以分为两个独立使用的八位寄存器来用AX可分为AH和ALBX可分为BH和blcx可分为ch和cldx可分为dn和dl
2008-08-18 17:58:00 109
原创 REG Bit Encodings
reg w=0 16 bit mode 32 bit mode w=1 w=1 000 AL AX EAX001 CL CX ECX010 DL DX EDX01
2008-08-18 17:45:00 130
原创 si, di
The ax, bx, cx, dx, si, di, bp, sp, flags, and ip registers were all extended to 32 bits.
2008-08-18 17:41:00 141
原创 8086 Segment Registers
The 8086 has four special segment registers: cs, ds, es, and ss.These stand for Code Segment, Data Segment, Extra Segment, andStack Segment, respectively. 8086cpu不支持将数据直接送入段寄存器,只能用寄存器中转。
2008-08-18 17:37:00 187
原创 CPU Registers
AX –The accumulator registerBX –The base address registerCX –The count registerDX –The data registerBecause registers are on-chip and handled specially by the CPU, they are much fasterthan memory.
2008-08-18 17:32:00 167
原创 old linux学习笔记
ds:si 的意思是 段地址 ds 是 0x7c00 si 中存放的是偏移地址 在前面已经将段地址 ds 设为了 0x7c00 ,所以这里 sub si,si 的意思是, si 自己减自己,就是把它清零......在 intel 汇编中,源地址的组合是 ds:si ,即段地址寄存器 ds 和 si 寄存器共同构成源地址 , 相应的目标地址为 es:di ,即段地址寄存器 es
2008-08-18 16:21:00 146
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人