摘要: 第22讲为标号和变量的属性.   标号和变量都是存储单元,只是一个存放的是指令,一个存放的是数据。 他们都有段值,段内偏移和类型。   析值操作符(数据回送操作符): 变量和标号的操作符: SEG: 获得段值。 OFFSET: 获得段内偏移 TYPE: 获得数据类型 1,BYTE。 2,WORD。 4,DWORD。 –1,NEAR。 -2,FAR。   变量的操作符: LEN... 阅读全文
posted @ 2010-12-18 20:55 杨海龙 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 第21讲内容为数据定义语句。   定义Byte 数据 名称 DB value [,value] 定义Word数据 名称 DW value 定义DWORD数据 名称 DD value 定义字符串 名称 DB ‘value’ 重复定义 名称 DB nDUP(value)    n为次数 名称 DW nDUP(value) 名称 DD nDUP(value) 定义没有初值的数据 名称 定义符 ?  ... 阅读全文
posted @ 2010-12-17 22:14 杨海龙 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 第19讲为习题课,偷懒没写。   第20讲讲第三章,开始讲伪指令。 指令的格式为 [标号] 指令助记符 [参数1] [,参数2] [;注释] 伪指令的格式为 [名称] 伪指令 [名称] [;注释] 伪指令不是程序运行指令,而是告诉汇编来做什么。伪指令的参数可以是常数或表达式。   RADIX 16可设置汇编的默认常数进制为16进制。   算术运算符: 加法(+) 减法(-) 乘法... 阅读全文
posted @ 2010-12-16 20:48 杨海龙 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 第18讲为循环指令。 循环指令共有四组:   LOOP,对CX减1后检查CX的值,如果不为0,跳转到标号   LOOPE, LOOPZ,检查是否相等或为0,如果相等或为0,跳转到标号   LOOPNE, LOOPNZ,检查是否不相等或不为0,如果不相等或不为0,跳转到标号   JCXZ,检查CX中的数是否为0,如果为0,跳转到标号。   例: BLOCK中有100字节带符号... 阅读全文
posted @ 2010-12-14 19:52 杨海龙 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 第17讲为有条件跳转。 有条件跳转的指令通常为 J[N]+Flag 有符号数比较的判定为: 大于(G) 等于(E) 小于(L) 无符号数比较的判定为: 大于(A) 等于(E) 小于(B)   X, Y 中存放为16位有符号数,将X,Y中较大的数放入AX MOV AX, X CMP AX, Y JGE SKIP MOV AX, Y SKIP: …..   书籍TABLE处地址... 阅读全文
posted @ 2010-12-13 20:39 杨海龙 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 第16讲为汇编的转移指令JMP   无条件段内直接跳转 JMP 标号 。 直接跳转至标号所在指令。 JMP 偏移量。跳转至当前IP + 位移量 的位置 无条件段内间接跳转 JMP OPRD。 操作数可以是通用寄存器或存储单元。跳转至OPRD地址所在内容。 无条件段间直接接跳转 JMP FAR 标号。 把标号所在地址的段地址送入cs,偏移地址送入IP。 无条件段间间接跳转 JMP FAR OPR... 阅读全文
posted @ 2010-12-12 20:27 杨海龙 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 第15讲内容为移位操作指令。   算术左移 SAL 逻辑左移 SHL 这两个操作基本相同。SHL   OPER, m 将操作数左移m位。如果m = 1,可直接写 SHL OPER, 1 如果m 1,应放入CL中。 MOV CL, 5   SHL AX, CL      算术右移 SAR 对有符号数,左边使用符号补齐。 逻辑右移  SHR 左边使用0补齐。 还有四个循环移动指令: RO... 阅读全文
posted @ 2010-12-11 09:15 杨海龙 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 第14讲学习指令为逻辑运算指令。   NOT: NOT OPER      将操作数取反,结果送回操作数。   AND: AND OPER1, OPER2    将参数1和2进行按位与运算,运算结果送入OPER1中。运行指令后,CF = 0, OF = 0,而SF, ZF, PF反映计算结果。操作数对自身求与操作,结果不变,但可以将CF清0。 AND 操作经常用于需要将某些位置0,而其他位不... 阅读全文
posted @ 2010-12-10 20:20 杨海龙 阅读(171) 评论(0) 推荐(0) 编辑
摘要:   除法指令:   无符号除法DIV,有符号除法IDIV。 除法规则:用32位数除以16位数,或16位数除以8位数。 当被除数是32位时,高16位放在DX中,低16位放在AX中。被除数是16位时,放在AX中。二者的商放在低位中,余数放在高位中。 当商与除数的位数不同时,结果0号溢出。对标志位行为未定义。   符号扩展指令: CBW,把AL中的8位有符号数进行符号扩展到AH中,结果是AX... 阅读全文
posted @ 2010-12-09 20:02 杨海龙 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 第12讲前部分继续进行加减法例子的讲解,后半部分讲乘除法.   汇编的乘除法运算指令分为有符号乘除法和无符号乘除法。 乘法指令为 MUL 和 IMUL MUL为无符号数乘法,IMUL为有符号数乘法,用法如下:   MUL OP,汇编指令把一个操作数默认放在AL或AX中,而运算结果,对8位数相乘,运算结果是一个16位数,放在AX中。对16位数相乘,运算结果是一个32位数,其中高位放在DX... 阅读全文
posted @ 2010-12-08 20:18 杨海龙 阅读(218) 评论(0) 推荐(0) 编辑