摘要: 第七单 宏指令语句 1.掌握宏指令及其用法 一、结构和记录 一、结构 结构是为了更有效地对数据进行组织和描述 宏, 汇编语言除了提供简单数据变量的伪指令(如DB, DW, DD)外,还提供了用于说明复杂数据类型的伪指令。 利用这些伪指令能够说明复杂的数据类型,从而定义复杂的数据变量。 1. 结构类型的说明 结构伪操作指令STRUC是MASM支持的一种伪操作,它可以把各种不同类型的数据放... 阅读全文
posted @ 2011-01-19 20:32 杨海龙 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 三、DOS程序段前缀和特殊程序处理程序 1.程序段前缀 PSP 程序段前缀是DOS加载一个外部命令或应用程序时,在程序段之前设置的一个只有256字节的信息区 当DOS把控制权转给外部命令或应用程序时,数据段寄存器DS和附加段寄存器ES均指向PSP,即均含有PSP的段值。 这样应用程序可以方便地使用PSP的有关信息。 2.终止程序的另一途径 利用DOS的4CH号系统功能调用终止程序,把控制... 阅读全文
posted @ 2011-01-14 19:57 杨海龙 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 习题课 例1: 设在缓冲区DATA中存放着12个组合的BCD码,求它们的和,把结果放在缓冲区SUM中。 … DATA DB 23, 45, …… SUM DB 2DUP( 0 ) … MOV AX, SEGMENT DATA MOV DS, AX MOV BX, OFFSET DATA MOV CD, 12 XOR AL, AL NEXT: ADD AL, [BX] DAA ... 阅读全文
posted @ 2011-01-13 20:10 杨海龙 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 二、未组合BCD码算术运算调整指令 1.未组合BCD码的加法指令调整指令: AAA 指令格式: AAA 本指令对在AL中的由两个未组合BCD码相加后的结果进行调整,产生一个未组合BCD码 调整方法如下: 1) 如果AL中低4位在0~9之间,且AF=0,转入3) 2) 如果AL的低4位在A~F之间,或AF=1,则(AL)=(AL)+6, (AH)=(AH)+1, AF=1 3) 清除A... 阅读全文
posted @ 2011-01-12 20:25 杨海龙 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 三、十进制数算术运算调整指令 8086,8088中使用BCD码表示十进制数 BCD码可分为压缩的BCD码和非压缩的BCD码。(组合BCD码和非组合BCD码)。 压缩的BCD码一个字节含两位BCD码, 非压缩的BCD码一个字节也含两位BCD码,但高4位的BCD码无意义,不使用。 1.组合BCD码加法调整指令: DAA 格式: DAA 操作: 对AL中的和进行调整,调整如下: 1) 如... 阅读全文
posted @ 2011-01-10 19:42 杨海龙 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 串操作的几个例子:   例1: ; 子程序名: STRLEN ; 功能: 测量字符串的长度。 ; 入口参数: 字符串放在段值和偏移为DS: DI 所在的存储单元中 ; 出口参数: AX = 字符串的长度 ; 说明: 字符串以0结尾,长度不包含0 STRLEN PROC PUSH CX PUSH DI CLD XOR AL, AL MOV CX, 0FFFFH REPNZ... 阅读全文
posted @ 2011-01-08 08:44 杨海龙 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 第六单 二、串指令的重复前缀 由于串操作指令每次只能对字符串中的一个字符进行操作,进行操作时总是要使用一个循环。8086,8088提供了重复操作前缀,用于重复串操作。 1. REP 重复后面的操作。每次执行重复指令前,判断CX,如果CX=0,结束指令,否则,执行前缀后的串操作。 REP前缀主要用于MOVS和STOS前,一般不在LODS前使用任何重复前缀。 例: ; 子程序名: FILL... 阅读全文
posted @ 2011-01-06 20:34 杨海龙 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 本节开始学习第六单。 第六单内容主要有两点: 1.字符串的各种操作 2.掌握BCD码的调整 一、字符串操作指令 8086,8088中共有5种基本串操作指令。在串操作指令中,由变址寄存器SI指令源操作数,由变址寄存器DI指向目的操作数。规定源操作数存放在当前数据段,目的操作数存放在当前附加段内。字符串操作方向由标志寄存器中的方向标志位来确定。 当DF=0,按递增方向处理。 当DF=1,按... 阅读全文
posted @ 2011-01-05 20:19 杨海龙 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 非屏蔽外部中断 当收到NM1传入的中断请求信号时,不管是否处于开中断状态,CPU总是会响应中断。 非屏蔽外部中断主要由电源掉电,存储器出错,或总线奇偶校验错等紧急故障产生,要求CPU及时处理。   五、内部中断 CPU内部某个事件引起的中断称为内部中断。内部中断由CPU在执行某些指令时产生,也叫做软中断。内部中断不受中断允许标志IF的控制。   1、中断指令INT 引起的中断 格式... 阅读全文
posted @ 2011-01-04 20:21 杨海龙 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 本节继续中断数据传送方式   一、中断响应过程 1.中断响应过程 响应中断时硬件自动完成的工作为: 1.取得中断类型号 2.把标志寄存器内容压栈 3.禁止外部中断和单步中断 4.把下一条指令地址压栈(CS和IP) 5.从中断类型号取出中断处理程序入口地址 6.转入中断处理程序   2.中断返回指令利用堆栈返回指令从堆栈中弹出返回地址和原标志寄存器值。 指令格式: IRET... 阅读全文
posted @ 2010-12-31 19:26 杨海龙 阅读(208) 评论(0) 推荐(0) 编辑