摘要: 初学Delphi嵌入汇编是万一老师写的一个学习Delphi+ASM的系列 // Delphi函数中,使用eax,edx,ecx分别表示前三个参数 // 32位返回值直接由eax返回 function add(x,y: Integer): Integer; asm ADD EAX,EDX end; 阅读全文
posted @ 2009-07-13 17:46 on_road 阅读(1126) 评论(0) 推荐(0) 编辑
摘要: 这几天一直在学习王爽的那本汇编语言 阅读全文
posted @ 2009-07-13 17:42 on_road 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 1. flag寄存器是按位起作用的,每一位都有专门的含义 2. 其实cpu是执行add等指令时,就已经包含了两种含义(有符号数和无符号数,关键是我们需要不需要SF、CF、OF等 标志)。CF记录无符号,OF记录有符号,SF记录结果的符号 3. 补码运算时,先看两个操作数的最高位是不是1,然后算出相应的十进制 4. 8086CPU用称为中断类型码的数据来表示中断信息的来源,中断类型码为一个字节的数据可以表示256种中断 中断向量就是中断处理程序的入口地址 5. 8086CPU在收到中断信息后,引发中断的过程:1.从终端信息中取得中断类型码;2.标志寄存器入栈;TF和IF置0 阅读全文
posted @ 2009-07-13 17:31 on_road 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 1. 一个字由两个字节组成,可以存在一个16寄存器中,这个字的高位字节和低位字节分别存在这个寄存器的高8位 寄存器和低8位寄存器中。 2. 一个内存单元可以存放8位数据,cpu中的寄存器又可以存放N个8位的数据,所以计算机中的数据大多是由1到N 个8位. 3. 数据构成的,用16禁止可以直观的看出这些数据由哪些8位数据组成。 4. 8位寄存器最大可以存放值为255的数据,16位寄存器最大可以存放值为65535的数据。 5. 每一个内存单元在存储空间中都有一个唯一的地址,这个地址称为物理地址。 阅读全文
posted @ 2009-07-13 17:30 on_road 阅读(944) 评论(0) 推荐(0) 编辑
摘要: 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器 阅读全文
posted @ 2009-07-13 17:27 on_road 阅读(16145) 评论(0) 推荐(3) 编辑
摘要: 指令长度与寻址方式有关系,规律或原则如下: 一、没有操作数的指令,指令长度为1字节。如 es: ds: cbw xlat 等。 二、操作数只涉及寄存器的指令,指令长度为2字节。如 mov al,[si] mov ax,[bx+si] mov ds,ax 阅读全文
posted @ 2009-07-13 17:25 on_road 阅读(8726) 评论(1) 推荐(2) 编辑
摘要: -----------------------算数运算指令----------------------- ADD 加法 ADC 带位加法 SBB 带位减法 SUB 减法. INC 加法. NEC 求反(以0减之). NEG 求反然后加1,假如NEG AL相当于Not AL; INC AL CMP 比较.(两操作数作减法,仅修改标志位,不回送结果). INC DPTR 数据指针寄存器值加1 (说明:将16位的DPTR加1,当DPTR的低字节(DPL)从FFH溢出至00H时,会使高字 节(DPH)加1,不影响任何标志位) 阅读全文
posted @ 2009-07-13 17:24 on_road 阅读(10562) 评论(0) 推荐(1) 编辑
摘要: 中断INT 21H : 1、字符功能调用类(Character-Oriented Function) 01H、07H和08H —从标准输入设备输入字符 02H —字符输出 03H —辅助设备的输入 04H —辅助设备的输出 05H —打印输出 06H —控制台输入/输出 09H —显示字符串 0AH — 键盘缓冲输入 0BH —检测输入状态 0CH —清输入缓冲区的输入功能 (1)、功能01H、07H和08H 功能描述:从标准输入设备(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待状态直到有字符可读为止。该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾 入口参数:AH=01H,过滤掉控制字符,并回显 阅读全文
posted @ 2009-07-13 17:21 on_road 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: 使用这个东西,首先要包含2个头文件: #include #include struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如" www.google.com","wpc "等等。 传出值,是一个hostent的结 阅读全文
posted @ 2009-06-26 19:53 on_road 阅读(953) 评论(0) 推荐(0) 编辑
摘要: Delphi 关键字详解.... 阅读全文
posted @ 2009-06-25 12:23 on_road 阅读(527) 评论(1) 推荐(0) 编辑