- 541.00 KB
- 2022-04-29 14:29:33 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'讲稿-56相关附件6440-1.-梦中梦中的婚礼吉他60
第5章宏汇编语言本章学习目标通过本章的学习,应当掌握以下内容:•了解汇编语言的基本知识和特点。掌握宏汇编基本语法。•掌握汇编语言常用伪指令的使用方法。•熟悉宏汇编语言的程序结构、段定义以及语句的格式。2
汇编语言与宏汇编语言汇编语言是一种面向CPU指令系统的程序设计语言,它采用指令助记符来表示操作码和操作数,用符号地址表示操作数地址。汇编语言编写的源程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程称为汇编,完成汇编任务的程序称为汇编程序。汇编程序是最早也是最成熟的一种系统软件,它除了能够将汇编语言源程序翻译成机器语言程序这一主要功能外,还能够根据用户的要求自动分配存储区域,包括程序区、数据区、暂存区等;自动把各种进制数转换成二进制数,把字符转换成ASCII码,计算表达式的值等;自动对源程序进行检查,给出错误信息,如非法格式、未定义的助记符、标号、漏掉操作数等。具有这些功能的汇编程序称为基本汇编ASM(Assembler)。3
标号和变量的3个属性段属性:其所在的段基址,用SEG运算符可算出。例:MOVAX,SEGBUF偏移属性:用OFFSET运算符可算出其有效地址。例:MOVBX,OFFSETBUF类型属性:变量的类型有:字节型:用DB伪指令定义字型:用DW伪指令定义双字型:用DD伪指令定义四字型:用DQ伪指令定义五字型:用DT伪指令定义注:使用时,可用PTR运算符作临时性的修改标号的类型有:NEAR(近):该类型标号是段内转移指令的目标地址FAR(远):该类型标号是其他代码段转移指令的目标地址7
立即数:经汇编后转换成等值的二进制补码。如:12,0A8H,10100000B,34Q,-2字符串常数:经汇编后转换成相应的ASCII码。如:‘A’,‘ABCD’,‘3’例:XDB‘ABC’;相当于XDB41H,42H,43HMOVDL,‘1’;DL=31H符号常数:用伪指令EQU或“=”定义。例:COUNTEQU55POINTER=2F8H······MOVCL,COUNT;CL=55MOVDX,POINTER;DX=2H8H2.常量8
1.数值运算符(1)算术运算符有:+、—、*、/、MOD(模除,即取余)例:MOVAX,8+5;汇编时完成运算,其值若出界给出错误信息。MOVAX,31MOD5;AX=15.2.2运算符(2)逻辑运算符有:NOT:按位取反例:MOVAL,NOT10010011B;AL=01101100BAND:按位相与例:MOVAL,37HAND0FH;AL=07HOR:按位相或例:MOVAL,7OR30H;AL=37HXOR:按位异或例:MOV0AAHXOR55H;AL=0FFHHIGH:截取高8位例:MOVAH,HIGHBX;BH→AHLOW:截取低8位例:MOVAL,LOWBX;BL→AL9
(3)关系运算符有:运算符格式说明例EQXEQYX=Y为“真”MOVAX,XEQ5;若X=5则AX=0FFFFH否则AX=0HNEXNEYX≠Y为“真”MOVBL,XNE25LEXLEYX≤Y为“真”MOVEAX,XLE77GEXGEYX≥Y为“真”MOVDI,XGE07HLTXLTYXY为“真”MOVDL,XGT25注:关系运算符为“真”时,结果为“-1”(即全1),否则为0。10
格式:类型的说明符PTR地址表达式类型说明符有:BYTE(字节)WORD(字)PTR内存操作数的5种寻址之一DWORD(双字)NEAR(近)FAR(远)PTR转移地址标号/过程名2.修改类型属性的运算符——PTR运算符11
(1)求某个逻辑段/变量/标号的段基址运算符SEG格式:SEG段名【例】MOVAX,SEGDATA;AX=名为DATA逻辑段的段基址MOVDS,AX【例】XYZDW1234H……MOVAX,SEGXYZ;AX=变量XYZ所在段的段基址(2)取变量/标号的偏移地址运算符OFFSET格式:OFFSET变量名或标号【例】MOVBX,OFFSETXYZ;BX=变量XYZ的偏移基址3.返回属性或数值的运算符12
(3)返回变量或标号的类型TYPE格式:TYPE变量/标号功能:返回变量类型:字节=1,字=2,双字=4;返回标号类型:NEAR=—1,FAR=-2。例:MOVAX,TYPEXYZ;AX=2(4)$运算符,返回汇编计数器的当前值。用法:紧跟在DB,DW,···伪指令之后,统计出分配给某个变量的单元数。例:XYZDW1234H,5678HCOUNTEQU$-XYZ;COUNT=413
[地址表达式]——是内存操作数的常用寻址方式。[下标]——表示用下标访问数据元素,直接寻址.例:XYZDW1234H,5678HMOVBX,XYZ[2];BX=78H4.方括号运算符和地址表达式14
1.等值伪指令格式:符号常数EQU表达式例:XXEQU22H;XX代表22H特点:符号常数在后继语句中不能更改。2.等号伪指令格式:符号常数=表达式例:XX=22H;XX代表22H,特点:在后继语句中可以重新定义:XX=XX+1注:符号常数可定义在任意逻辑段中,要先定义后使用。5.3数据定义的伪指令15
格式:变量名 DB一串用逗号间隔的单字节数例:BUF1DB22H,5*6,10101010B;BUF1为字节型的变量DB120,-5,0A6H,‘HELLO’;分配11个单元。COUNTEQU$-BUF1;统计出BUF1变量的单元数→符号常数,COUNT=11BUF2DB?,?,10DUP(‘A’);?为随机数,共分配12单元。3.字节定义的伪指令16
格式:变量名 DW一串用逗号间隔的双字节数功能:通知汇编程序,把所定义的双字节数从指定变量开始依次存放。规律:低对低,高对高例:WNUMDW1234H,56,‘AB’,‘C’,?COUNTEQU$-WNUM;COUNT=10注:DW伪指令中的字符串常数,单引号内只能是一个或两个字符,‘C’编译后为0043H。5.多字节定义的伪指令格式:变量名 DD/DF/DQ/DT一串用逗号间隔的多字节数说明:伪指令DD/DF/DQ/DT为所定义的每一个数,分配4个、6个、8个、10个单元。例5.3.1(P.76)4.字定义的伪指令34H12H38H00H42H41H43H00H00H00HWNUM17
本节主要解决程序的结构:说明CPU的类型定义逻辑段结构说明段约定定义过程返回DOS系统说明程序的结束5.4宏汇编语言基本语法18
格式及功能:.8086;只汇编8086、8088指令.486;80486及以下实模式指令.486P;80486及以下全部指令缺省;与设置.8086等价位于源程序的第一条指令。1.方式选择伪指令指明使用的CPU类型19
格式:段名SEGMENT定位参数链接参数‘分类名’段长度段体称为属性参数(可选)段名ENDS属性参数为源程序的汇编、链接提供必要的信息,用于模块化设计:各模块单独编译,单独汇编,生成各自的OBJ文件,然后通过链接程序将各OBJ文件链接起来,生成一个EXE文件。不同模块之间,同名段如何链接、如何定位?2.段定义语句——即逻辑段的定界语句20
BYTE——段从任意字节开始WORD——段从下一个字地址开始开始DWORD——段从下一个双字地址开始开始PARA(默认)——段从下一节地址开始(16个字节为一节)PAGE——段从下一页地址开始(256字节为一页)(1)定位参数(段对齐)——通知链接程序,逻辑段的目标代码在存储器中如何存放21
(2)链接参数(组合)——用于控制LINK行为,指示在满足定位方式的前提下,同名各模块如何组合PRIVATE(默认):段不与其他同名段合并。PUBLIC——段与其它同名段合并为单个连续段MEMORY——与PUBLIC等价COMMON——段与其它同名段“覆盖”组合成一个逻辑段,段长为最长段长。STACK——段与其它同名段组合成一个大堆栈段。AT表达式——由表达式给出段基址。常与ORG伪指令配合,指定存储单元。例:DATASEGMENTAT0040H;DATA段的段基址为0040HORG0017H;指定KEY的偏移地址KEYDB?;KEY的物理地址为0417HDATAENDS22
图5.1(书P.80)指出主模块+子模块在链接时,链接参数的功能。(3)’分类名’——用户指定,用来区别逻辑段链接时,把不同模块中分类名相同的同名段组织成一类,存放在邻近的存储区中。(4)段长度USE16——该逻辑段长度最大允许为64K,单元的有效地址为16位,16位寻址方式USE32——该逻辑段长度可以超过64K,单元的有效地址为32位,32位寻址方式,段长4G。23
格式:ASSUME段寄存器:段名,···,段寄存器:段名功能:通知汇编程序,寻址逻辑段使用哪一个段寄存器,是非执行语句。例:ASSUMECS:CODE,DS:DATA说明:作为代码段的第一条语句。除CS以外段寄存器的初值必须在程序中用指令设置。如:MOVAX,DATA或MOVAX,SEGDATAMOVDS,AXMOVDS,AXDOS把一个可执行程序(EXE文件)调用内存之后,自动地把程序代码段的段基址赋给了CS。3.段约定语句24
格式:过程名PROC属性参数……过程实体……RET过程名ENDP属性参数:NEAR(可缺省):与调用指令在同一个代码段中。FAR(远过程):与调用指令不在同一个代码段中。4.过程定义语句25
格式:ORG表达式功能:通知汇编程序,从表达式给出的有效地址开始,依次存放后继目标块。例:CODESEGMENTASSUMECS:CODEORG100HBEG:JMPSTART;有效地址BEG=100HBUFDB12,34START:··········MOVAH,4CHINT21H;返回DOSCODEENDS;代码段结束ENDBEG;汇编程序结束5.定位语句26
格式1:END程序启动地址标号例:ENDBEG;表明以BEG标号开始的主程序的结束。说明:DOS把一个可执行程序(EXE文件)调用内存之后,自动地把程序代码段的段基址赋给了CS,把BEG所在单元的偏移量赋给IP。格式2:END;用于模块化程序中的子模块结束。程序返回DOS的常用方法:MOVAH,4CHINT21H6.汇编结束语句27
介绍基于DOS环境的实模式程序设计的基本方法。本章主要教学内容1、汇编语言基本格式、程序设计步骤和方法2、DOS和BIOS中断调用3、顺序、分支、循环、子程序的基本结构和设计方法4、宏指令与条件汇编本章教学目的使学生掌握指令系统的应用,学会程序设计的方法。教学重点:指令系统的应用、汇编语言程序设计教学难点:指令的灵活运用、程序设计技巧第6章汇编语言程序设计28
(1)分析问题,抽象出数学模型(2)确定算法或解题思想(3)绘制流程图(4)存储空间和工作单元初始化(5)程序编制(6)静态检查(7)动态调试程序设计的基本步骤29
程序一般可以由顺序结构、分支结构和循环结构这3种组合而成。每一个结构只有一个入口和一个出口,3种结构的任意组合和嵌套就构成了结构化的程序。(1)顺序结构:是按照语句的先后次序执行一系列的顺序操作(2)分支结构:也叫条件选择结构,根据不同情况做出判断和选择,以便执行不同的程序段,分为双分支结构和多分支结构。(3)循环结构:循环实际上是分支结构的一种扩展,循环是否继续是依靠条件判断语句来完成的。按照条件判断的位置,可以把循环分为“当型循环”和“直到型循环”。程序的基本结构30
可执行文件的类型有:*.bat批处理文件低*.exe执行文件(执行级别)*.com执行文件高有两种类型的编程格式:1、EXE文件的编程格式2、COM文件的编程格式6.1汇编源程序的编程格式31
.486SSEGSEGMENTSTACK〈堆栈段的内容〉SSEGENDSDSEGSEGMENT〈数据段的内容〉DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEG,SS:SSEG启动标号:〈代码段的内容〉MOVAH,4CHINT21H;返回DOSCSEGENDSEND启动标号6.1.1EXE文件编程格式特点:可有多个逻辑段(数据段、堆栈段、代码段),在实模式下,每个逻辑段的目标块≤64KB,适合编写大型程序。32
例6.1.1:显示10行HELLO(.EXE格式).486DATASEGMENTUSE16MESGDB‘HELLO’,0DH,0AH,’$’;0DH:回车,0AH:换行DATAENDSSTACK_SEGMENTPARASTACK‘STACK’USE16DB100DUP(?)STACK_ENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATA,SS:STACK_BEG:MOVAX,STACK_MOVSS,AX;设置栈底和栈顶(可省略)MOVSP,100;∵装入内存时自动给SS,SP赋值。MOVAX,DATAMOVDS,AXMOVCX,10;设置循环次数LAST:MOVAH,9MOVDX,OFFSETMESGINT21H;显示一行HELLOLOOPLAST;循环控制MOVAH,4CHINT21H;返回DOSCODEENDSENDBEG;结束代码段堆栈段数据段33
特点:(1)只有一个代码段,不允许设置堆栈段;(2)数据集中设置在代码段的开始或末尾;(3)在代码段偏移地址为100的单元必须是程序的启动指令。(4)代码段的目标块﹤64KB。适合于编写中小型程序。CODESEGMENTUSE16ASSUMECS:CODEORG100H;指定后继指令的有效地址BEG:JMPSTART;BEG为程序的启动地址<数据定义>START:<代码内容>MOVAH,4CH或采用INT20HINT21H;返回DOSCODEENDSENDBEG6.1.2COM文件的编程格式34
例6.1.2:显示10行HELLO(.COM格式)CODESEGMENTUSE16ASSUMECS:CODEORG100H;指定后继指令的有效地址BEG:JMPSTART;BEG为程序的启动地址MESGDB‘HELLO’,0DH,0AH,’$’;0DH:回车,0AH:换行START:MOVCX,10;设置循环次数LAST:MOVAH,9MOVDX,OFFSETMESGINT21H;显示一行HELLOLOOPLAST;循环控制MOVAH,4CH或采用INT20HINT21H;返回DOSCODEENDSENDBEG;汇编结束35
(1)编辑生成ASM文件(2)汇编生成OBJ文件(用TASM.EXE或MASM.EXE)(3)链接生成EXE文件(用TLINK.EXE或LINK.EXE)(4)链接生成COM文件:用TLINK.EXE链接时使用小写的“t”做链接参数。从汇编语言源程序到可执行程序的生成过程:汇编语言源程序.ASM汇编目标程序.OBJ连接可执行程序.EXETASM.EXETLINK.EXEEDIT.EXE编辑36
1、当EXE文件装入内存:程序段前缀(PSP)——DOS在同一块内存区的用户程序上方(低址)偏移地址为00H~FFH的单元自动生成256个字节的数据块。使DS=ES=存放PSP的段基址,FS=GS=0,使CS:IP=用户程序的启动地址,SS:SP指向用户堆栈段的栈顶,然后DOS将控制权交给用户。EXE文件内存映像如图6.1(a)(P.86)6.1.3EXE文件和COM文件的内存映像37
INT20H……数据段代码段堆栈段DS,ESCS:IPSS:SP用户程序PSP图6.1(a)EXE文件的内存映像38
2、当COM文件装入内存:程序段前缀(PSP)——DOS在同一块内存区的用户程序上方(低址)偏移00H~FFH的单元生成一个程序段前缀。从偏移地址100H开始依次存放用户程序,所以IP=100H,CPU从此开始执行。自动为用户设置堆栈段,且在用户程序的高端。初始栈顶为2个字节的0。DOS自动赋值使CS=DS=ES=SS=PSP的段基址。FS=GS=0,IP=100H,SP=FFFEH,后DOS将控制权交给用户。COM文件内存映像如图6.1(b)(P.86)39
INT20H……用户程序堆栈段00H00HCS,DS,ES,SSIPSP64KB—256BPSP图6.1(b)COM文件的内存映像100H40
占用256个单元,信息是DOS装载可执行文件时自动生成的,用来管理用户程序:向用户程序传递参数,提供正常结束和异常结束时返回DOS的途径。PSP的数据格式:(书P.86)程序运行时如何从PSP中获取命令行参数?当程序结束返回DOS之后,用户程序及PSP所占用的内存空间均被释放。6.1.4程序段前缀(PSP)41
1、常用方法:MOVAH,4CHINT21H2、COM文件还有3种:(1)直接执行INT20H;(2)调用INT21H的0号功能;MOVAH,0INT21H(3)执行RET指令。如果堆栈段的内容全部弹出,则SP必然等于FFFEH,CPU将无条件转入PSP的首单元,执行那里的INT20H,返回DOS。6.1.5返回DOS的其他方法42
3、EXE文件还有1种:设法使CPU转到PSP首单元采用下面3项措施:(1)把整个执行程序放在一个远过程中(2)在给DS赋初值之前,将PSP的物理地址入栈,执行:PUSHDSMOVAX,0PUSHAX(3)程序在需要返回DOS的地方执行RET指令即可,此时CS:IP为PSP的首单元例6.1.3:显示10行HELLO(.EXE格式)43
例6.1.3:显示10行HELLO(.EXE格式).486DATASEGMENTUSE16MESGDB‘HELLO’,0DH,0AH,’$’;0DH:回车,0AH:换行DATAENDSSTACK_SEGMENTPARASTACK‘STACK’USE16DB100DUP(?)STACK_ENDSCODESEGMENTUSE16ASSUMECS:CODE,DS:DATA,SS:STACK_MAINPROCFAR;定义远过程BEG:PUSHDSMOVAX,0;PSP首单元物理地址入栈PUSHAXMOVAX,DATAMOVDS,AXMOVCX,10;设置循环次数LAST:MOVAH,9MOVDX,OFFSETMESGINT21H;显示一行HELLOLOOPLAST;循环控制RET;返回DOSMAINENDPCODEENDSENDBEG;结束远过程44
COM文件:不允许设置堆栈区,但其装入内存后,DOS将自动在用户程序的高端地址为其设置堆栈区。EXE文件:可以设置SS,若没有设置链接时有警告信息,但DOS将其装入内存后,自动分配128个字节的堆栈区。6.1.6源程序堆栈段的设置45
DOS系统中有两个核心模块:IBMBIO.COM——为基本I/O设备处理程序,完成数据I/O的基本操作。IBMDOS.COM——磁盘文件管理程序。这两个模块中有100多个子功能可被用户调用。用户调用这些子功能就称之为“DOS系统功能调用”。DOS系统功能调用的调用模式:MOVAH,功能号设置入口参数INT21H;执行“21型中断服务程序”的由AH指定的子程序。分析出口参数6.2DOS系统I/O功能调用(INT21H)46
1、从键盘输入一个字符(1)01H功能——等待键盘键入一个字符,有回显,响应Ctrl_C。(2)08H功能——等待键盘键入一个字符,无回显,响应Ctrl_C。(3)07H功能——等待键盘键入一个字符,无回显,不响应Ctrl_C。入口参数:无出口参数:AL=按键的ASCII码。若AL=0,表明按键是功能键,需再次调用本功能,才能返回按键的扩展码。例:MOVAH,01HINT21HCMPAL,‘Y’;从键盘输入的字符与‘Y’比较JEEXIT;若是,转DOS系统常用的输入/输出功能调用47
2、在屏幕上显示一个字符02H功能——在光标所在位置显示一个字符,光标右移,响应Ctrl_C。入口参数:DL=待显示的ASCII码。出口参数:无例:MOVAH,02HMOVDL,‘A’INT21H;在屏幕上显示字符A48
06H功能——根据DL寄存器的内容执行字符显示/字符输出(1)显示DL中的字符入口参数:DL=0~FEH出口参数:无,显示与DL内容对应的字符(2)判断有无键盘输入,无回显,不响应Ctrl_C。入口参数:DL=FFH出口参数:若无键输入,则置Z标=1若有键输入,则置Z标=0,AL=输入字符的ASCII码。若AL=0,需再次调用本功能,才能返回按键的扩展码。0BH功能——查询有无键盘输入,响应Ctrl+C入口参数:无出口参数:AL=0无键入AL=FFH有键入3、判断有无键盘输入49
09H功能——从当前光标处开始显示字符直到遇到串的结束标志,‘$’(即ASCII码24H),响应Ctrl+C。入口参数:DS:DX=字符串首地址。出口参数:无。实验证明破坏AL寄存器的内容。例:设数据段STRDB‘AAAAA’,0DH,0AH,‘$’代码段对DS初始化MOVAH,09HMOVDX,OFFSETSTRINT21H;屏幕上显示‘AAAAA’并回车换行·····3、在屏幕上显示字符串50
0AH功能——等待从键盘输入字符串(以回车结束输入),送用户程序数据区。入口参数:DS:DX=缓冲区首址,要求该缓冲区中:第一字节存放允许用户输入的字符数(包括回车键);出口参数:实际输入的字符数(不包括回车键),保存在缓冲区的第二字节从第三字节开始保存输入的字符串(包括回车键)。4、从键盘输入一串字符BUF+0预置可容纳的字符个数(包括回车符)+1实际接受的字符个数(不包括回车符)+2:键入字符串的实际存储区:+n数据缓冲区51
例:BUFDB20,0,21DUP(?);建立缓冲区,字符串最长为19个·····MOVDX,OFFSETBUFMOVAH,0AH;输入ABCDEF回车INT21H;BUF:20,6,‘ABCDEF’,0DH·····52
00H功能——结束一个程序。入口参数:CS=程序段前缀段基址实用于COM格式的源程序返回DOS。例:MOVAH,00HINT21H4CH功能——终止当前程序的运行,把控制权交给调用它的程序,释放存储空间,关闭所打开的文件。入口参数:AL=返回码(或者不设置)出口参数:无例6.2.1(书P.92)人机对话5、返回DOS53
BIOS——基本输入/输出系统程序,放在主板ROM中,提供的功能有:系统加电自检、引导装入、主要输入/输出设备的驱动程序对系统接口电路的初始化编程等等。DOS与BIOS的关系:BIOS是最低层的系统软件。DOS是较高层次的系统软件,DOS的许多功能是通过调用BIOS实现的。用户程序调用BIOS功能称为“BIOS功能调用”6.3BIOS键盘输入功能调用(INT16H)54
MOVAH,功能号设置入口参数INTn分析出口参数BIOS功能调用模式:调用BIOS键盘输入子功能,使用INT16H调用BIOS屏幕操作子功能,使用INT10H55
00H功能——等待从键盘输入一个字符,无回显,响应Ctrl_C。入口参数:无出口参数:AL=键入字符的ASCII码。若AL=0,则AH=输入键的扩展码。例:MOVAH,00HINT16H;若键入字符A,则屏幕不显示,AL=41H01H功能——查询键盘缓冲区是否有键入字符入口参数:无出口参数:Z标=1,表键盘无输入Z标=0,有键入字符,AL=字符的ASCII码,AH=字符的扩展码。BIOS常用的键盘输入子功能(调用指令INT16H)56
02H功能——读键盘当前的转换键状态入口参数:无出口参数:AL=键盘状态字。状态字各位定义如下:70Insert键CapsLockNumLockScrollLockAlt键Ctrl键左Shift右Shift注:位置为1,表示相应的转换键被按下,或有效时。10H功能——读扩展键盘,无回显,响应Ctrl_C。入口参数:无出口参数:AL=键入字符的SACII码,若AL=0,AH=键入字符的扩展码。57
11H功能——查询扩展键盘缓冲区是否有键入字符入口参数:无出口参数:Z标=1,表键盘无输入Z标=0,有键入字符,AL=字符的SACII码,AH=字符的扩展码。12H功能——读扩展键盘当前的转换键状态入口参数:无出口参数:AL=扩展键盘状态字。AL7~AL0的置位条件同功能02H。58
MOVAH,01HINT16H;查询键盘缓冲区JZSTOP;无键入则转MOVBX,AXMOVCH,4LOOP1:MOVCL,4ROLBX,CL;不带进位的循环左移,把高4位移到低4位MOVAL,BLANDAL,0FH;截取低4位ADDAL,30H;转换为ASCII码CMPAL,3AHJLNEXT;是数字,转ADDAL,07H;不是数字再加7,变为字母NEXT:MOVDL,ALMOVAH,02HINT21H;显示DL中的字符DECCHJNZLOOP1STOP:·····实例:检查键盘缓冲区是否有字符,若有则将此字符的ASCII码及扩展码送屏幕显示。59
6.4.1显示器分类:CRT(阴极射线管或称光栅扫描)显示器;液晶显示器。显示适配器——是显示器和系统总线之间的接口电路。用9针插座与CTR显示器相连。功能:CRT控制器、定时器、字符发生器、显示存储器等。显示器和显示适配器共同组成微机的输出显示系统。CRT显示器性能指标分辨率:分字符分辨率(以字符为单位)和图形分辨率(以像素为单位)显示速度——与分辨率及扫描频率有关。色彩及亮度等级(灰度)6.4文本方法BIOS屏幕调用(INT10H)60
单色显示——只能工作在文本方式下,显示字母、数字、符号。对应的显示标准是MDA。彩色显示器——即支持文本模式,又支持图形模式。对应的显示标准是CGA→EGA→VGA→SVGA→TVGA(达到了1024X768的最大分辨率,256色,支持132列的文本显示模式)DOS启动后,适配器自动工作在80列X25行的文本方式下。1.屏显方式61
当适配器工作在80列X25行的文本方式时,屏幕被划分为2000个“方格”,每一个方格对应显示存储区(又称视频映像区)中的两个单元:偶地址:存放待显示字符的ASCII码奇地址:存放待显示字符的“属性字”显适配器中:容量为4K,实际使用4000个单元(一屏)。地址为:B000:0000~0FFFH。彩显适配器中:文本显示容量为16K,分成4页,页号分别为:0,1,2,3,一页即一屏。2.显示存储器62
彩显适配器中0-3页的存储地址分配:第0页存储器地址为:B800:0000~0FFFH,空闲96个单元第1页存储器地址为:B900:0000~0FFFH,空闲96个单元第2页存储器地址为:BA00:0000~0FFFH,空闲96个单元第3页存储器地址为:BB00:0000~0FFFH,空闲96个单元启动DOS后,系统默认第0页为“当前页”。显示存储区与屏幕字符的对应关系,如图6.3(书P.95):相对各个页面的段基址而言:本页显示存储单元的地址偏移量=行号*160+列号*2相对于0页的段基址而言:各页显示存储单元的地址偏移量等于行号*160+列号*2+页号*1000H显示存储器组装在显示适配器中,与系统RAM统一变址:单色显示存储器占用系统RAMB0000~B0FFFH共4K单元彩色文本存储器占用系统RAMB8000~BBFFFH共16K单元63
描述了字符显示的特性:前景色、背景色、是否闪烁等。如图6.4及表6.1(P.96)。4.屏幕显示l系统加电后,BIOS对显示适配器进行初始化,使屏幕工作在80X25黑白文本方式。lCRT控制器从0页的显示存储单元依次取出字符的ASCII码,转换成点阵码送CRT,驱动CRT显示lCRT控制器以50屏/秒的速率,周期性地、不间断地进行上述操作。对程序员来讲,只要把待显字符的ASCII码和它的属性字写入显示存储器的相关单元,就相当于输出到屏幕上。3.属性字64
1.调用指令:INT10H2.功能:l00H功能——设置屏幕显示方式入口参数:AL=模式号。如:AL=0,40X25黑白文本方式AL=1,40X25彩色文本方式AL=2,80X25黑白文本方式AL=3,80X25彩色文本方式出口参数:无6.4.2文本方式BIOS屏显功能调用(INT21H)65
l01H功能——设置光标的形状入口参数:CH=光标顶部扫描线行号(0~7),CL=光标底部扫描线行号(0~7)出口参数:无l02H功能——设置光标位置入口参数:BH=显示页号,DH=行号,DL=列号。出口参数:无l03H功能——读光标的位置入口参数:BH=显示页号。出口参数:CH,CL=光标顶部扫描线、底部扫描线行号DH,DL=光标在屏幕上的行、列号。66
l05H功能——选择工作页面入口参数:AL=页号(在80列方式中为0~3)。出口参数:在屏幕上显示出指定显示页的字符(只对文本方式有效)l06H功能——窗口上滚入口参数:AL=上滚行数,AL=0初始化窗口。BH=填充行的字符属性,CH/CL=窗口左上角行/列号DH/DL=窗口右下角行/列号出口参数:无67
l07H功能——窗口下滚入口参数:AL=下滚行数,AL=0初始化窗口。BH=填充行的字符属性,CH/CL=窗口左上角行/列号DH/DL=窗口右下角行/列号出口参数:无l08H功能——读光标位置的字符和属性入口参数:BH=页号出口参数:AL=字符的ASCII码,AH=属性68
l09H功能——在光标位置写字符和属性入口参数:AL=字符的ASCII码BH/BL=页号/字符属性CX=重复写字符的个数出口参数:无l0AH功能——在光标位置写字符入口参数:AL=字符的ASCII码BH=页号CX=重复写字符的个数出口参数:无l0EH功能——显示一个字符(与DOS系统的2号功能相同)入口参数:AL=字符的ASCII码出口参数:无69
l13H功能——显示字符串入口参数:AL=0~3BH/BL=页号/属性CX=字符个数(串长度)DH/DL=字符串显示的起始行/列号ES:BP=字符串的首地址出口参数:无说明:AL=0表示:串仅含ASCII码,属性由BL决定,光标返回调用前位置AL=1表示:串仅含ASCII码,属性由BL决定,光标停留在字符串尾AL=2表示:串中含ASCII码和属性,光标返回调用前位置AL=3表示:串中含ASCII码和属性,光标停留在字符串尾70
分类:简单分支、复合分支、多分支。6.5分支程序判断条件语句1语句2YN判断条件语句1语句2语句n……图:简单分支图:多分支71
采用IF—THEN—ELSE结构实现:即对两个操作数进行算术或逻辑运算,然后根据运算结果对标志位Z、S、P、O、P、C的影响来产生分支。基本程序分支程序实现举例:(1)用比较指令CMPDEST,SRC;比较两个操作数JEEQUL;如果DEST≠SRC,则顺序执行下一条指令,EQUL:┇;否则转到标号EQUL处。或JBEQUL;无符号数DEST﹤SRC时,转移或JLEQUL;有符号数DEST﹤SRC时,转移1.简单分支72
(2)用测试指令TESTDEST,SR:DEST和SRC进行逻辑与测试JNZONE;如果相与结果为0,则顺序执行下一条指令,ONE:┇;否则转到标号ONE处。(3)用逻辑指令RCLDEST,CL;对DEST进行带进位的循环左移JCNEXT;如果CF=0,则顺序执行下一条指令,NEXT:┇;否则转到标号NEXT处。73
将BX寄存器的内容以二进制数格式显示在屏幕上。设计思想:将BX寄存器左移一位,判进位标志,若为0。屏幕显示‘0’,若为1,屏幕显示‘1’。处理流程:【例6.5.1】二进制数显示程序(书P.99)CX=0DL=‘0’BX的最高位→CFCF=1显示‘0’DL=‘1’显示‘1’返回DOSYNNY74
在一个分支中又嵌套着另一个分支【例6.5.2】设NUMBER单元的数X以及数值N1,N2均为单字节无符号数,请判断X的大小,并根据判断结果分别显示:N1<=X<=N2,或XN2.(书P.100)处理流程:2.复合分支X≥N1显示XN2显示N1≤X≤N2分支结束NYYN75
即多路开关,通常根据某个寄存器或某单元的内容进行程序的转移。常采用转移地址表法:在存储区设置一地址表,将多个分支程序的地址(语句标号)顺序放在表中,供程序在条件选择某一分支程序时使用。格式:JMP[地址表的首地址+元素下标×2]【例6.5.3】多分支的段内转移示例(书P.100)。3.多分支76
循环结构程序是经常用到的,主要由以下4个部分组成:(1)初始化部分(2)循环体(3)参数修改部分(4)循环控制部分常用寄存器或内存操作数作为循环计数器。循环程序结构分为:单重循环和多重循环6.6循环程序77
REPEAT—UNTIL结构:先执行循环体再判断条件。循环程序结构如图6.5(a)(P.102)REPEAT—UNTIL循环结构程序举例:(1)MOVCX,COUNT;设置循环初值AGAIN:┇;循环程序入口LOOPAGAIN;循环控制(2)MOVCL,COUNT;设置循环初值AGAIN:┇;循环程序入口DECCL;计数器减1JNZAGAIN;循环控制【例6.6.1_1】找最大数解法1(书P.101)。找最大数的程序框图如图6.61.单重循环程序78
WHILE—DO结构:先判断循环条件,满足条件才进入循环体。WHILE—DO循环结构程序举例:(1)MOVCX,COUNT;设置循环计数初值AGAIN:JZNEXT;CX=0,退出循环┇DECCX;修改循环计数值JMPAGAINNEXT:┇(2)AGAIN:CMPDEST,SRC;入口,比较两个操作数JEEXIT;如果DEST=SRC,退出循环。┇JMPAGAINEXIT:┇【例6.6.1_2】找最大数解法2(书P.103)。79
循环程序中嵌套循环程序。双重循环结构如图6.5(b)(P.102)在使用多重循环时要特别注意以下几点:(1)内循环应完整地包含在外循环内,内外循环不能相互交叉。(2)内循环在外循环中的位置可根据需要任意设置,在分析程序流程时要避免出现混乱。(3)内循环既可以嵌套在外循环中,也可以几个循环并列存在。可以从内循环直接跳到外循环,但不能从外循环直接跳到内循环。(4)防止出现死循环,无论是内循环还是外循环,不要使循环回到初始化部分,否则将出现死循环。(5)每次完成外循环再次进入内循环时,初始条件必须重新设置。2.多重循环80
1.子程序的定义:过程名PROC属性┇RET过程名ENDP由所处位置来确定属性:是段间或段内子程序。2.调用指令CALL过程名;段内调用CALLFAR过程名;段间调用6.7子程序及其调用81
15、82
15、83
15、84
15、85
dMaI7F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$mVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ80z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdLaI6F3B0y)v%s#lThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!piRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaF3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4Cv%s#pXlUiRfNcK8H5E2A+x(u$rZoWkThPeMbJ86
中考语文专题复习病句修改
复习目标1、能准确判定句子有无语病。2、掌握常见的病句类型。3、能对病句进行恰当的修改。
病句透视所谓“病句”,顾名思义,就是有病的句子,即是指因为不符合现代汉语语法规则、不合逻辑事理,修辞不当而造成的“不通顺的语句”。
(一)解题知识1.如何判断:要判断语句是否有毛病,需要掌握以下几种常见的判断方法。(1)语感审读法(2)主干枝叶梳理法(3)造句类比法
常见语病概述:1.语序不当是指句子中词语的顺序调换了,产生歧义。改正时,一般把顺序调整即可。如:例1.博物馆展出了几千年前刚出土的文物。[病因:句子语序不当,“刚出土”应调到“几千年前”前面。]改正:博物馆展出了刚出土几千年前的文物。
例2.她做了两个丈夫喜欢的菜。[病因:宾语的修饰语语序不当,产生了歧义,出现了“两个丈夫”的语义不清的错误,应把“两个”调到“菜”的前面。]改正:她做了丈夫喜欢的两个菜。
2.搭配不当是指一个句子的各个成分之间搭配不符合语言习惯。包括主谓搭配不当、动宾搭配不当、主宾搭配不当、修饰语与中心语搭配不当、前后句意搭配不当。例3:改革开放后,人们的生活水平得到了很大的改善。[病因:主谓搭配不当,应把“改善”改为“提高”。]
例4.同学们明确了学习态度和目的。[病因:“态度”和“明确”搭配不当,应把“态度和”删去。]
3.成分残缺是指一个句子缺少了应有的成分,影响了意思的表达。常见的是缺主语、缺谓语或缺宾语。例5.听了校长的报告,使我受到极大的鼓舞。[病因:缺主语。改正:删去“使”字,句子才有主语。]
例6.我们要响应“保护地球”。[病因:缺宾语,应在句末补上“的号召”才通顺。]改正:例6.我们要响应“保护地球”的号召。
4.成分多余多表现为用词多余、重复。例7.文艺百花园姹紫嫣红,万紫千红,气象万千。[病因:成分多余,“姹紫嫣红”与“万紫千红”重复了,删其中一个便可。]
5.不合逻辑即自相矛盾、否定不当、不合事理。例8.我国有世界上没有的万里长城。[病因:不合事理,我国属于世界的一部分,世界上没有的我国家也应该没有。所以,应把“世界上”一词换上“其他国家”。]
课堂练习:修改病句优化训练近期,①香港举办的2005年花卉展览,由杭州枪江管理处制作的“六和钟声”,获得“大型园林景点设计特等奖”。作为杭州市的参赛作品,②“六和钟声”凝聚了半个多月制作人员的心血。评委们认为,③“六和钟声”获奖的原因是因为他构思精巧,形象丰满,最具江南特色。这段文字中画横线的句子有语病,请加以修改。
改正:①“的”改“了”或“在香港举办的2005年花卉展览上”——用词不当②“六和钟声”凝聚了制作人员半个多月的心血。——语序不当③删除“的原因”或“因为”——语意重复
课堂总结:修改错病句的方法有:1.增2.删3.调4.换增加字词,如成分残缺的句子。删去多余、重复字词,如成分多余的句子。调整字词的顺序,如语序不当的句子。更换字词,如搭配不当的句子。
请同学们记住:不论使用那种方法,都不能改变句子的原意,做到“改至通顺、改至正确”为原则;而且,尽量少改动。'
您可能关注的文档
- 最新认证考试地图艺术设计-地图色彩课件PPT.ppt
- 最新认识周长刘老师---修改-2课件PPT.ppt
- 最新认识头颈癌治疗药物课件PPT.ppt
- 最新认识自我的方法.课件PPT.ppt
- 最新认识秒--蒋俊凤课件PPT.ppt
- 最新认识营养、营养素课件PPT.ppt
- 最新记叙文训练——审题立意课件PPT.ppt
- 最新记忆有窍门_图文.课件PPT.ppt
- 最新记忆术总结课件PPT.ppt
- 最新讲课-面肌痉挛护理课件PPT.ppt
- 最新讲述iap功效在现实应用过程中的应用方法以及相干处理计划课件PPT.ppt
- 最新讲课莲叶青青课件PPT.ppt
- 最新讲课用:《降低化学反应活化能的酶》课件(1)课件PPT.ppt
- 最新设备故障诊断技术课件PPT.ppt
- 最新设备操作及保养基础知识培训[下载资料]课件PPT.ppt
- 最新设正方体的棱长为a课件PPT.ppt
- 最新设计素描说课课件PPT.ppt
- 最新设计色彩---平面性色彩归纳课件PPT.ppt