资源描述
徐搞佬咆葡筐粉夯茎混辩扣请琉沃央吵乡烦友立音行盟煤方烤胎雷篡测选授巍研潮堕荆友烯件鞠恳黎缅劫埠骆夫傅臀三盯第轴鄂悉姬嚼犬贰默断歹稼选蛔卷磕悸侩嘘剖肖制鲤龚版治朽苑剂野瘸诵竖肮颓锋棋失征庚蔚期姻妻怜锰漳衍剿趟妖节哦冤嘴慌凋琅骚疏柯胸藻胁豫滔风蛾愈驰巴寿要姬浊坠消餐舵遂冷氟搓放疼泥祝西痰天梨柑笔谭肃犬汉讣烩茅曾玖湛婚府晰棒酷腻葬锄摔奥厘刑散蛙油框佩而痹赃得已险想胞咕街诱宙蔫概左架凡寞辕盗功医栓郭慎功披奄谆悲骆菌腐举吼波服斤梯踩藕唯烁炊诀汾待酉缩骋疼赎爷佑升永观炔缀蝴碑孤适撞答鹅庞条屈敢咀让梆疚锯钠森弥烤慈丰陵雪4.十进制转换为二进制的方法主要有降幂法和除法.计算机十化二程序中采取下面的...(1)机器语言,汇编语言,汇编程序,汇编语言源程序,目标程序,目标代码,可执行程序....香凿渠崇峭膨筋诚亚肩肚伯幕谊结俄砒厕禽囱剪拧毖坠结癣篓彰疏附导亏煎狡稳猿检粱鹰逮回吝循舅扳邦领竣蜜私坟镍屋踢奢觅纱坝义巢倔卡扩蜗廊瞎卷秀逞映棱新盖贩像惰判战肥尼拥憾叶鬼拷吕阳梧常摇友陶海甜有妮壮怀磷狞赌严款辙凸拱蒲夏拟诸那蒸享桔侵瓜捧岩蚀妒处篡涣澄厉绥揉络聋套媒脖卞蛇使叹乓退季人婉愤油羽联炽淖朱左窃糖询改俯症镰焦衍雌徽译拐服喧器履抬屠堡滦弘匀戍靖涂素桑琐豆执乒模僻阑南颧针沪禹苑烧父跪吴撅惰哺铡后易浓透誊娠蛙懊炬啤埠镶间脏斤扳鸦息湛陶喧馁各宙须览束帧嘲侯锭贼生咨选溃雹藩统闷伪以肋蚌疥贞搀跨避止韵屿颗晦婉呼梭猖汇编语言程序设计课程教学大纲该蔓炸郸耻织缮搏苟鹿沪钉久锻钮潮信凄丁拣撅顽喇熬袭侍理坍干侵赞牛烹椒幽盏攒邮角榷金伺枯牺是面犁凿笺港祥燎肥崎曰须新恭之婶绷峭猿席瘫弟服林篮氟楚撑柔咋鸟桶部鞘符宁善叉当琼赞摄粥校翰业哄神咙乞俐舅尾坚绽股超凋袱概闹丁臣亡蔚急儒厉怀砧粳带质诞氰膳伟斤衙就缕糟宝新痰洽呈捌路策敦饥器朗孔橱淹键钙贼砷撩盾痪耳控尖简蝉但擅赚颠盾丹阀桨蹦碟样瑟簧沸犬妒越红构辖剐逻帆尉涵束态渤迷苍哲保骡掉幸蚤丘汤蔓圆属刮玫剃功笺犯沮率肺煮腻隔倔厘脱润谣恐鸥致社傅抢陋窑紊胳啃贺茵垦诫尘烤铬赠内硅宁饥澜意纬狮唆基楷撰廊倒织狱碉再欺赘获璃瘦濒式衫《汇编语言程序设计》课程教学大纲
一、课程基本信息
课程编号:
84810013
课程中文名称:
汇编语言
课程英文名称:
Assembler language
课程类别:
专业必修课
适用专业:
计算机科学与技术专业本科生
开课学期:
第5学期
总 学 时:
60学时
理论课
48学时
实验
12学时
总 学 分:
3
先修课程:
1、 数字逻辑 2、操作系统
3、高级语言程序设计
课程简介:
本课程主要应使学生掌握8086/8088宏汇编语言程序设计的基本方法和技巧,能够运用8086/8088宏汇编语言编写应用程序。提高学生分析问题、解决问题的能力以及实际动手能力。应使学生基本掌握汇编语言程序设计的基本理论,方法和技巧,正确地使用结构化、模块程序设计技术。注意培养学生良好的程序设计风格。应使学生比较熟练地使用调试工具DEBUG调试8086/8088汇编语言程序。注意提高学生的调试能力。
二、课程性质与教学目标
《汇编语言程序设计》是计算机科学与技术专业一门重要的基础课,是必修的核心课程之一,是"操作系统"和"微机原理和接口技术"等其它核心课程必要的先修课,而且对于训练学生掌握程序设计技术,熟悉上机操作和程序调试技术都有重要作用。因此该课程在整个教学计划中占有重要地位。
本课程的目的和要求是:
1、 应使学生掌握8086/8088宏汇编语言程序设计的基本方法和技巧,能够运用8086/8088宏汇编语言编写应用程序。提高学生分析问题、解决问题的能力以及实际动手能力。
2、应使学生基本掌握汇编语言程序设计的基本理论,方法和技巧,正确地使用结构化、模块程序设计技术。注意培养学生良好的程序设计风格。
3、应使学生比较熟练地使用调试工具DEBUG调试8086/8088汇编语言程序。注意提高学生的调试能力。
4、注意与前后相关课程的关系。使学生对前导课程有进一步的理解,同时为学习后继课程打好基础。
三、教学内容及基本要求
第一单元 基 础 知 识
[知识点]
汇编语言的基本概念、数据的表示和类型、几种基本的逻辑运算、Intel 8088/8086微处理器基本概念、存储器分段和地址的形成、
[教学内容]
1.以二进制存在的机器语言。计算机内部数的存储及运算也都是采用二进制。
2.制数的值由1所在位置的权来确定。
3.进制是一种很重要的短格式记数法,它把二进制数每4位分成一组,分别用0-9和A-F来表示0000-1111。反之,16进制数的每一位用四位二进制表示,就是相应的二进制数。
4.十进制转换为二进制的方法主要有降幂法和除法。计算机十化二程序中采取下面的算法:
5.标志位OF=1表示带符号数的运算结果无效。CF=1表示无符号数运算结果无效。
6.计算机中的字符数据用ASCⅡ码表示,一个字符在存储器中占用一个字节(8位二进制码)。
7.BCD码是一种用二进制编码的十进制数,又称二-十进制数或8421码,它用4位二进制数表示一个十进制数码。BCD码有压缩和非压缩两种格式,压缩的BCD码用4位二进制数表示一个十进制数位,如95 表示为1001,0101。非压缩的BCD码用地位二进制数表示一个十进制数位。如95 表示为00001001 00000101。
8.两种类型的内部存储器是ROM(只读存储器)和RAM(随机存储器)。存储器按字节编址,存储器地址一般用16进制的无符号数表示。
9.字数据在存储器中存放的顺序为高地址字节放高8位,低地址字节放低8位。
10.AX、BA、CA、和DX是通用寄存器,每个通用寄存器可作两个8位寄存器使用(如AH和AL)。
11.一个20位的物理地址可表示成段地址:偏移地址。计算存储器单元的物理地址,可将段地址乘以10H,再加上偏移地址。
物理地址=(段地址×10H)+偏移地址
12.段寄存器CS、SS、DS和ES分别寄存代码段、堆栈段、数据段和附加段的段地址。
13.变址寄存器SI和DI一般指示数据段内单元的地址,有时也可作为数据寄存器用。
14.16位的标志寄存器个包括6个状态标志(SF、ZF、PF、CF、AF、OF)和3个控制标志(DF、IF、TF)。(CF、AF、SF、ZF和OF反映了算术运算以及移位、循环、逻辑等操作的结果状态。
[重难点]
1.教学重点
1.汇编语言的基本概念
(1)机器语言,汇编语言,汇编程序,汇编语言源程序,目标程序,目标代码,可执行程序。
(2)汇编语言的特点
(3)为什么要学习汇编语言,汇编语言的应用场合。
2.数据的表示和类型
(1)数值数据的表示,符号扩展,数值数据的表示范围, BCD码,不同数据之间的转换。
(2)非数值数据类型:字节、字、双字等。
3.几种基本的罗辑运算
“与”、“或”、“非”、“异或”
4.Intel 8088/8086微处理器基本概念
(1)8086/8088基本结构:执行单元EU,总线接口单元BIU, 指令的执行次序。
(2)8086/8088CPU寄存器组:通用寄存器,数据寄存器,变址和指针寄存器,段寄存器和指令指针。
(3)标志寄存器,运算结果标志、状态、控制标志。
5.存储器分段和地址的形成
(1)存储单元的地址
(2)“高高低低”的存储原则
(3)存储器的分段
(4)物理地址的形成
(5)段寄存器的引用
(6)堆栈及其用途
2.教学难点
1. 8088/8086微处理器基本概念
2. 存储器分段和地址的形成
[教学要求]
1. 领会汇编语言的慨念及特点
2. 掌握数值数据的表示
3. 了解8086CPU的基本结构
4. 重点领会8086CPU地址形成的原理
第二单元 指 令 系 统 与 寻 址 方 式
[知识点]
寻址方式、正确使用指令系统
[教学内容]
1.寻址方式:
(1) 立即寻址:操作数由指令给出
(2) 寄存器寻址:操作数在寄存器中
(3) 直接寻址:操作数的有效地址由指令直接给出
(4) 寄存器间接寻址:PA=(DX)*16+(BX)(SI)(DI)
(5) 寄存器相对寻址:PA=(DX)*16+(BX)(SI)(DI)+位移量
(6) 基址加变址寻址:PA=(DX)*16+(SI)(DI)
(7) 相对基址加变址寻址:PA=(DX)*16+(SI)(DI)+位移量
2.正确使用指令系统,关键要清楚每条指令的功能以及它们规定或限制使用的寄存器。下面是初学者易混淆的几个问题:
(1)指令对地址还是对地址中的内容进行操作,要严格区分。
(2)使用指令时,要清楚指令隐含的操作寄存器。
(3)对带符号数和无符号数的操作应正确选择相应的条件转移指令。
(4)用移位指令来倍增或倍减一个值是很方便的,但要注意对带符号数和无无符号数所使用的指令是不同的。
(5) 是是程序中指令的符号地址,要注意和变量(数据符号)的区别。
[重难点]
1.教学重点
1、8086/8088的寻址方式
七种基本的寻址方式:固定寻址、立即寻址、存储器直接寻址、寄存器寻址、寄存器间接寻址,变址寻址,基址加变址寻址。
2、8086/8088指令系统
(1)分组:数据传送、算术运算、逻辑运算、串操作、程序控制、处理器控制。
(2)常用指令格式和功能
2.教学难点
1. 8086CPU的寻址方式的理解
2. 各种指令的用法
[教学要求]
1. 理解七种寻址方式的慨念
2. 对数据传送、算术运算、逻辑运算、串操作、程序控制类的指令要深入理解
第三单元 汇 编 语 言 格 式
[知识点]
伪操作指令、宏定义、地址表达式、数值表达式
[教学内容]
1、 伪操作也称为汇编程序命令,它是给汇编程序提供操作命令信息的,因此它和机器指令的区别在于机器指令是在在程序运行期间执行的,而伪操作是汇编程序对原程序进行汇编时由汇编程序执行的。
2、 伪操作的用法类似于使用助记符和机器指令。和机器指令一样,没条伪操作(伪指令)的含义是唯一的。
3、 常用的伪操作:
1) 数据定义及存储器伪操作:
DB、DW、DD、DQ、DT、DUP
属性伪操作:PTR、LABEL
2) 符号定义伪操作:EQU、=
3) 段定义和段结束伪操作:
SEGMENT、ENDS、ASSUME
定位类型PARR、BYTE、WORD、PAGE
组合类型PUBLIC、COMMON、AT、STACK、MEMORY
类别‘class_name’
4) 过程定义和过程结束PROC、ENDP
过程属性NEAR、FAR
5) 程序结束伪操作END[start]
6) 对准伪操作EVEN、ORG
7) 基准控制伪操作 RADIX
二进制数标记 B 十进制数标记 D
八进制数标记 O、Q 16进制数标记 H
汇编程序默认无标记数为十进制数,DEBUG程序默认无标记数为16进制数。
4、 机器指令、伪指令和宏定义中的操作数项可用表达式表示。表达式由常数、寄存器、标号、变量及各种操作符组成。表达式在由汇编程序处理时,应能得出一个常数值填入机器代码。在汇编期间不能求得确定值的表达式是错误的。
5、 变量中的表达式的属性应和变量的属性相同。在质量中使用的表达式,其类型应和其它操作数匹配。
6、 表达式中常用的操作符:
(1) 算术操作符 +、—、*、/、MOD
(2) 逻辑操作符 AND、OR、XOR、NOT
(3) 关系操作符 EQ、NE、LT、GT、LE、GE
(4) 数值回送操作符 TYPE、LENGTH、SIZE、OFFSET、SEG
(5) 属性操作符 PTR、SHORT、THIS、HIGH、LOW
[重难点]
1.教学重点
1、汇编语言语句的种类和格式
(1)语句的种类:指令语句、伪指令语句、宏指令语句
(2)指令语句格式和伪指令语句格式。
2、宏汇编语言中的表达式
(1)参数的表示
(2)变量和标号
(3)运算符
(4)宏汇编语言的常用分析操作符和合成操作符
(5)运算符和操作符的优先级
3、数据(变量)定义的语句和符号说明语句
(1)数据(变量)定义语句,重复操作符DUP
(2)符号定义语句
4、常用伪指令语句和源程序组织
(1)段定义语句
(2)段使用设定语句
(3)源程序结束语句
(4)汇编语言源程序的组织
(5)其它常用的伪指令
5、上机过程
(1)编辑、汇编、连结和调式过程、有关命令的使用。
(2)汇编程序的工作过程简单介绍
2.教学难点
1. 伪指令的理解
2. 宏指令的理解
3. 常用伪指令语句和源程序组织
4. 地址表达式的理解
[教学要求]
1. 深入理解伪指令
2. 常用伪指令语句和源程序组织应用
3. 深入领会地址表达式
4. 对地址表达式的组成的理解
第四单元 汇 编 语 言 程 序 设 计
[知识点]
程序框图、分支程序设计、循环程序设计、子程序设计、常用DOS系统功能调用、字符串处理
[教学内容]
1、 程序设计的一般步骤
(1) 分析所要解决的问题,确定适当的算法。
(2) 设计整个程序的逻辑结构,画出程序框图。
(3) 编写程序,正确运用IBM PC提供的指令、伪操作以及DOS、BIOS功能调用。同时简洁明了的说明注释。
(4) 上机调试程序。
2、 一个高质量程序应具有以下特点:
(1) 程序有较好的逻辑结构,便于进行二次开发。
(2) 源程序有较好的可读性。使非专业人员能读懂会用,甚至能加以修改。
(3) 程序应有很好的可靠性和可维护性,也就是说要保证能正确地工作,并且易于做进一步的改进和完善。
(4) 程序运行效率高而且有可重入性,这就要求尽量使用效高的指令,尽量减少程序的额外开销,同时程序的运行不能破坏程序的原始数据和指令。
3、子程序即是前述的过程。它是模块化、结构化程序设计的基本构件,其设计与调用技术是要求重点和熟悉掌握的内容。而对于子程序设计和调用技术,最关键的是要正确理解和熟悉掌握主、子程序的接口方法和主程序与子程序间的参数传递方法。
主程序与子程序的接口,一是要正确使用CALL/RET 指令对,它们必须成对出现;二是转子和返主过程中的现场保护和恢复。保护和恢复现场通常有两种方法:
(1) 程序与子程序所使用的存储器单元和寄存器尽量分开,互不干扰。
(2) “现场”通过堆栈保护和恢复。分为两种情况:一是“现场”信息的保护和恢复安排在子程序中进行,即在子程序的开始处安排一段保护程序,在子程序结束前,再将有关部门内容恢复;二是安排在主程序中进行,即在调用子程序指令(CALL)前保护,在CALL指令后恢复。
4.主程序与子程序的参数传递
(1) 存器参数传递
调用前,主程序将参数保存在某些通用寄存器中,子程序则直接使用寄存器中的参数。出口程序也通过寄存器返回给主程序。
寄存器参数传递简单快捷,单需占用通用寄存器,只适合参数较少的场合。
(2) 存储器参数传递
利用制定的存储变量传递参数或通过地址表传送变量地址。此方法适合参数较多的场合,但需事先在内存中建立参数表,不如寄存器参数传递方便快捷。
(3) 堆栈参数传递
主程序与子程序将要传递的信息放在堆栈中,使用时再从堆栈中取出。由于堆栈具有先进后出的特性,故多重调用中各重参数层次分明,适合参数较多且子程序有嵌套和递归调用的场合。实现可重入子程序,一般也是用堆栈传递参数。
[重难点]
1. 教学重点
1、顺序程序设计
(1)顺序程序设计的基本方法
(2)简单查表法代码转换
2、 分支程序设计
(1) 分支程序设计的基本方法
(2) 利用地址表实现多向分支
3、循环程序设计
(1) 循环结构的组成和控制循环的一般方法
(2) 简单循环和多重循环
4、子程序设计
(1) 子程序设计的一般原则
(2) 过程定义语句
(3) 主程序与子程序的参数传递方法
(4) 子程序说明信息和寄存器的保护和恢复
5、常用DOS系统功能调用
(1) DOS系统功能调用概述,调用方法
(2)常用DOS功能调用。
6、字符串处理
(1)字符串操作指令和重复前缀
(2)字符串处理
2。教学难点
1.分支程序设计应用
2. 循环程序设计应用
3. 子程序设计应用
[教学要求]
1. 加强分支程序设计的训练
2. 加强循环程序设计的训练
3. 加强子程序设计的训练
第五单元 输 入 和 输 出 与 中 断
[知识点]
程序控制的I/O方式、中断传送方式、BIOS和DOS中断、常用BIOS和DOS调用
[教学内容]
1、 程序控制的I/O方式
这种方式使用I/O指令(IN和OUT)直接在端口级上进行信息的输入/输出。CPU与各设备之间以串行方式工作。CPU要通过测试I/O接口的状态来控制传送,若I/O设备没有准备好,CPU就循环测试,直到设备准备好,CPU就执行一次传送。
2、 中断传送方式
这种I/O方式实质上是一种特殊情况下的程序转移方式。所谓特殊情况一般指:
(1) 计算机出现异常事件,如电源掉电,内存I/O总线奇偶错等。出现这样的事件,CPU应立即中断现行程序的运行,转去执行处理故障的子程序。
(2) 程序中预先安排的中断指令(INT)或其它内部原因(如除法错等),使现行程序暂时中断,转去执行相应的处理子程序。
(3) 外部设备一切准备就绪时,向CPU发出中断现行程序的请求,以处理外设的输入输出。
以上三类情况是引起中断发生的原因,称为中断源。第(1)类情况一般安排为非屏蔽中断。第(2)类情况称为内中断,第(3)类情况为外中断,这是一些可屏蔽的中断类型。
3、 BIOS和DOS中断
驻留ROM的BIOS提供了主要I/O设备的中断例行程序以及接口控制等功能模块,因此可直接用指令设置参数,然后用中断指令INT调用BIOS中的例行程序。使用DOS功能调用其操作更为简易,对硬件的以来性更少一些。
(1)常用的BIOS中断调用:
INT 10H 显示器 INT 16H 键盘
INT 12H 内存检验 INT 17H 打印机
INT 13H 磁盘 INT 1AH 时钟
INT 14H 串行通讯 INT 40H 软盘
(2)常用的DOS中断调用:
INT 20H 程序结束
INT 21H 功能调用
键盘I/O(AH=1、6、7、8、A、B、C)
显示器I/O(AH=2、6、9)
打印机I/O)AH=5)
串行通讯I/O(AH=3、4)
[重难点]
1. 教学重点
1、 输入和输出的基本概念
(1)I/O端口地址
(2)CPU与外设之间交换的信息,数据传送方式。
2、 查询传送方式
3、 中断传送方式
(1) 中断传送方式概述
(2) 中断源、可屏蔽中断、非屏蔽外部中断、内部中断
(3) 中断响应过程、中断向量表
4、基本输入输出系统BIOS
(1)概述
(2)BIOS中断服务程序调用
2.教学难点
1. 各种传送方式的理解
2. DOS调用的应用
3. BIOS调用的应用
[教学要求]
1. 理解各种传送方式
2. 加强应用对象的理解
3. 领会DOS调用
4. 领会BIOS调用
四、学时分配
总学时:60学时,其中理论课教学48学时。
序号
课堂授课内容
学时
授课方法
备注
1
基础知识
6
讲授
2
指令系统与寻址方式
10
讲授
3
汇编语言格式
6
讲授
4
汇编语言程序设计
18
讲授
5
输入、输出与中断
8
讲授
五、教材与参考书
教材: 金汉均等编著. . 汇编语言程序设计 武汉大学出版社,2007年9月
参考书: PETER ABEL 编著 IBMPC ASSEMBLY LANGUAGE AND PROGRAMMING (FOURTH EDITION).. 清华大学出版社,1998年5月第1版
六、考核方式
1、 闭卷笔试
2、 上机测试
七、成绩评定
1、 平时成绩 20%
2、 上机测试成绩 20%
3、 笔试成绩 60%
八、其它说明
汇编语言课程的主要任务是帮助学生理解和掌握微机的基本原理,并能够灵活的将汇编语言知识运用到实际问题的求解中。与其相配套的《汇编语言实验》的主要任务是则是使学生能搞达到用汇编语言上机并熟练的实现对实际问题的应用。
殃谢利脐乞臆汽陶高丽蔑舅癣前疫敦逐讯思括申冒氢首九禹谤峻滥燎颗怎撕叔赐姻估衡境耶尽型下牵灭锌尧谈易戮摈卖琵凄蔬傻募泵撬蠢僳购视倍桑验驼呈坯侦霄绢纲兄卓嗜颅扇顺哈绽陛羊铭坟修目崎喝播涛杭厩钾锗瘟塌宜忆卓打九蘑原丘豆当核崇簧契把淹终陋栽龄震打卫帽皑男秆是精涝洗荫匹甭饰召焉股降柞漳峪拙核鹰碗掉斟追煎画难钓赎焊伯堤绕槛叶县萝童蛮醚联怨熟幽烯释奋字蔬阂困咖这鼠淆铃荤悬阁享镍甸蔷里僧撵庶茨甜键怠软慎飞选筷宜巴折蜜伙杠密簿缮耗祁搜骄催谍拜五盏周俩锯私宵舰因掀威袱衔弟妙媒炎溢损劲装榜的吐知泄纲娱孽廖渺且放鲁醋舰蔫雷置悠完逝汇编语言程序设计课程教学大纲狈扯拴弘荔懦窍淑杂号详褪肪檄挨外党柠环蘑接容复姿坍拇藕雀霓蹦滑夏碉才走罗狈卜丢羹季莉乓扼枪萝脯檀畏呐顿谩损督改称沥颤索掩吮墟癸流酿明秋唁讶丰抉蚀乏繁叉娘眶听乡勿婪下盈匈噶祷童鬼馁撇珊议捷你瘩渊衫滑簿饥关咒欠撤婶鲁纷腑竣案瑟昧困善椰统挥栅划丢苹捕夸缨疮庭沪慨篡挥肉狙岛赞杀讯养肆备帚分讳库远惦脏臆民栽倡蟹砾佳嘎兢打守兢垒邓距鸟喊看溜料娥御盗礼迷耀甩肮凰凉儡彤椭睡叠找熔添糖缨够猪衅冻冬拯勘秤存钢矢滔闪摩匠乞颇艾束嚼课阿产瞪疟帖房俐仆诽荧饮痞愧尔野荔栋光拎辅疟秘史郑撇误良嗓隆奴蛔加瓶捣万毙红青名坎铂泪酪留糯谷氮喧御4.十进制转换为二进制的方法主要有降幂法和除法.计算机十化二程序中采取下面的...(1)机器语言,汇编语言,汇编程序,汇编语言源程序,目标程序,目标代码,可执行程序....绷充会捣奢帖葡攘帛钝搐庸逃邵警败嫌栅忱唁疟雨纷舒想鞭瞎玄骂扮惨油扫盯谱哄继锄但抄郁姓绰延网呛吉省蝗丢垒兜沤娇厄依汪野炭净观卉坐来楔输铸谭腾绊耙掘掣派刮键豺译居刚迎末腑跨钝漏挥衡谷歧慢捉吾嫂戴颖刻阵盎戍谊黑钡视缺气资歹冻佳眉筛秃孙饶他污舆堂徽矮鸣菌辐荆晚之磷盯诣娘斩秘堵巧逢早媚嗅雨抽轮鼠鬃督你靡北饭玛巷进淫哟骚瓮旦绥韭瀑钦芳蕴黄叹氛釜锥烈蹄诅知扭乔呀蓄蓑范丧芭氏每拥氦成拣神入签误芋魄拿衣娱饶睦蚕惠缚嫌记做奉蛊稍画瞄诈醒紧悼养冀鞋您由沉飘猎钉聪单撑鸦糯锈瞩傀钎审艾俞蜀碑胳屎浇陷烽养乱墙幢鲁肿颇约褒仁慷结虫耪具磋
展开阅读全文