备课笔记10B4章Word文件下载.docx

上传人:b****2 文档编号:832615 上传时间:2023-04-29 格式:DOCX 页数:40 大小:555.29KB
下载 相关 举报
备课笔记10B4章Word文件下载.docx_第1页
第1页 / 共40页
备课笔记10B4章Word文件下载.docx_第2页
第2页 / 共40页
备课笔记10B4章Word文件下载.docx_第3页
第3页 / 共40页
备课笔记10B4章Word文件下载.docx_第4页
第4页 / 共40页
备课笔记10B4章Word文件下载.docx_第5页
第5页 / 共40页
备课笔记10B4章Word文件下载.docx_第6页
第6页 / 共40页
备课笔记10B4章Word文件下载.docx_第7页
第7页 / 共40页
备课笔记10B4章Word文件下载.docx_第8页
第8页 / 共40页
备课笔记10B4章Word文件下载.docx_第9页
第9页 / 共40页
备课笔记10B4章Word文件下载.docx_第10页
第10页 / 共40页
备课笔记10B4章Word文件下载.docx_第11页
第11页 / 共40页
备课笔记10B4章Word文件下载.docx_第12页
第12页 / 共40页
备课笔记10B4章Word文件下载.docx_第13页
第13页 / 共40页
备课笔记10B4章Word文件下载.docx_第14页
第14页 / 共40页
备课笔记10B4章Word文件下载.docx_第15页
第15页 / 共40页
备课笔记10B4章Word文件下载.docx_第16页
第16页 / 共40页
备课笔记10B4章Word文件下载.docx_第17页
第17页 / 共40页
备课笔记10B4章Word文件下载.docx_第18页
第18页 / 共40页
备课笔记10B4章Word文件下载.docx_第19页
第19页 / 共40页
备课笔记10B4章Word文件下载.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

备课笔记10B4章Word文件下载.docx

《备课笔记10B4章Word文件下载.docx》由会员分享,可在线阅读,更多相关《备课笔记10B4章Word文件下载.docx(40页珍藏版)》请在冰点文库上搜索。

备课笔记10B4章Word文件下载.docx

MOVDI,OFFSETBLOCK

LP:

MOVAL,[SI]

MOVES:

[DI],AL

INCSI

INCDI

LOOPLP

MOVAH,4CH

INT21H

CODENDS

ENDSTART

汇编语言语句种类——指令语句、伪指令语句、宏指令语句

1)指令语句——由指令系统中有的指令构成。

它指示CPU执行某种操作。

该指令语句汇编后将产生目标代码。

2)伪指令语句——属于说明性语句。

仅在汇编过程中起汇编管理和说明的作用,不产生目标代码。

实验二指令观察

4-2-2伪指令语句

格式:

名字伪操作指令[参数表][;

注释]

1、段定义伪指令

1)段定义伪指令

段名SEGMENT

段名ENDS

用于定义源程序的各个逻辑段。

如:

代码段、数据段、堆栈段等。

SEGMENT/ENDS必须成对出现,并且段名不能省略。

2)ASSUME假设伪指令

ASSUME段寄存器名:

段名[,段寄存器名:

段名]

假设,用XX段寄存器指示XX逻辑段(段名)。

用于汇编程序计算标号和变量的段内地址和物理地址。

但是并没有实际装填相应段寄存器。

段寄存器的内容还需要执行指令装填。

2、数据定义伪指令——(weizlgc.asm)

BYT1DB12H,12,34H,34,56H,,,

BYT2DB'

ABCD1234?

+-*/$$'

WRDDW'

AB'

'

12'

34H,1234H

SDREDB8DUP(20H)

DWRDDD12H,1234H,12345678H,0

QNUMDQ123H,456H

TNUMDT1234H,5678H

数据定义伪指令用来定义内存操作数(变量)。

伪指令语句的名字称为变量名,它代表其右第1个内存变量。

变量名有三个属性:

段地址、偏移地址、数据类型。

段地址——SEGMENTBASE

段内偏移量——OFFSET

类型——TYPE

数据类型指该变量所占字节数。

如上:

BYT1的类型值为1,WRD的类型值为2,DWRD的类型值为4,QNUM的类型值为8,TNUM的类型值为10等。

3、符号定义伪指令——EQU,weizlgc

名字EQU表达式;

把表达式的值赋给名字

LENEQU$-DWRD

NUMEQU3+5

$-DWRD和3+5称为表达式。

表达式中的各个元素必须有具体值定义,也就是说,在源程序中就能计算出表达式的具体数值。

$——程序汇编计数器。

用来统计汇编过程中已分配的内存单元字节数。

4、类型定义伪指令——LABEL

给变量或标号定义类型,如

变量名LABELBYTE/WORD/DWORD

标号名LABELFAR/NEAR

5、END结束汇编伪指令

结束汇编命令。

汇编程序遇见此伪指令就结束汇编过程。

因此,END应该是源程序的最后一条指令。

其后的所有信息都将被汇编程序忽略。

END标号

此处的“标号”应该指向程序运行的第一条指令,即表示第一条指令所在地址。

操作系统OS会自动将该“标号”的逻辑地址装入CS:

IP中。

5、过程定义伪指令

过程名PROCFAR/NEAR;

指令序列

过程名ENDP

过程,即子程序,分为外部过程和内部过程。

外部过程——主程序和过程不在同一源程序文件中。

其属性为FAR;

内部过程——主程序和过程同在一个源程序文件中。

又分为段间FAR过程和段内NEAR过程。

4-2-3指令语句

1、指令语句格式

[标号:

][前缀]指令助记符[操作数表][;

2、标号

标号的作用——标号代表“:

”后面指令所在内存地址,供程序控制类指令作为转移目标用。

标号的属性:

标号有三个属性:

类型——TYPE远FAR——供段间转移

近NEAR——供段内转移

标号的组成——字母数字组成,以字母开头,最多8个字符。

不可使用8086/8保留字,如指令和伪指令助记符、寄存器名、运算操作符等。

标号的定义

例如:

NEXT:

ADDAX,BX;

定义NEXT为近标号

ABCLABELFAR;

定义ABC为与远标号

MOVDX,BX

F2PROCFAR;

定义F2为远过程名,也可作标号用

标号的使用

在循环和条件转移指令中只能用NEAR标号,无条件转移指令根据转移目标的FAR/NEAR属性来决定汇编成段间还是段内转移。

转移的距离有三种:

FAR——用4个字节表示目标地址

NEAR——用2个字节表示目标地址(的距离)

SHORT——用1个字节表示目标地址(的距离)

3、指令助记符

指令系统中的指令

4、操作数

1)立即操作数

数值常数

符号常数——由EQU等伪指令定义其数值

表达式——符号常数和数值常数的运算表达式

总之,汇编过程中就能够计算出具体数值。

2)寄存器操作数

3)储存器操作数

地址表达式:

有效地址EA=[BX/BP]+[SI/DI]+disp(8/16位)

其中,disp可用常数、变量及其表达式

段基:

如有BP,则用SS

如有段超越符(如ES:

[BX],用ES)则用指定的段寄存器,

其他,都用DS

4-2-4操作数表达式

1、属性分析运算符:

SEG,OFFSET,TYPE

2、合成运算符:

PTR

还有很多其它运算符,以后碰到再介绍。

注意:

源程序中,名字、标号、变量名的取名规则:

1)不得与8086汇编语言的保留字相同。

所谓保留字包括:

指令助记符、伪指令、运算操作符等。

2)由英文字母和数字等符号组成,不超过8个字符。

第13次上课内容

4-3汇编语言程序设计

一、程序结构

1、顺序结构——没有程序控制类指令,不改变程序运行顺序。

最基本也最简单。

2、分支结构——根据某个条件是否满足(成立),决定程序的走向。

由条件转移指令实现分支控制。

是计算机软件具有分析判断能力的基础。

3、循环结构——程序中的某一段需要连续多次重复运行,可以采用循环结构。

可以大大减少程序代码量,优化程序结构。

计算机最擅长的就是简单重复处理,而人最烦的就是简单重复工作,因此,循环结构是最能够体现计算机优势的程序结构。

4、子程序结构——1)程序中需要多次运行的某一段相对独立的程序段可以用子程序的形式编写,主程序中多次调用,可以简化程序和开发工作量。

2)按照相对独立功能模块化程序设计:

按照相对独立功能自成一个子程序模块,复杂的程序由若干个模块(子程序)组成。

5、以上四种结构组成的复杂结构

配图:

4-3-1顺序结构

已知寄存器BL中有二位BCD数。

编程送CRT显示。

(zlgc3.asm)

ASSUMECS:

COD

MOVDL,BL

MOVCL,4

SHRDL,CL

ORDL,30H

MOVAH,2

INT21H

ANDDL,0FH

ADDDL,30H

MOVAH,4CH

ENDSTART

DOS功能调用

;

顺序程序例子。

DOS功能调用实例

例2:

编程使电脑显示“WHATISYOURNAME?

”,然后,用户输入自己的英文名字xxx(必须三个字符),电脑显示”WELCOMEYOU,Mrxxx”。

(exmp0.asm)

DATSEGMENT

MSG1DB'

WHATISYOURNAME?

'

0AH,0DH,24H

MSG2DB0AH,0DH,'

WELCOMEYOU,Mr$'

BUFDB4DUP(24H)

DATENDS

CODSEGMENT

ASSUMECS:

DAT

BEGIN:

MOVAX,DAT

MOVDS,AX

MOVAH,9

MOVDX,OFFSETMSG1

MOVAH,1

MOVBUF,AL

MOVBUF+1,AL

MOVBUF+2,AL

LEADX,MSG2

MOVDL,BUF

MOVDL,BUF+1

MOVDL,BUF+2

CODENDS

ENDBEGIN

4-4分支结构程序设计

分支结构是计算机软件具有分析判断能力的基础。

它根据某个条件是否满足(成立),决定程序的走向,选择不同的处理方法和过程。

分支控制由条件转移指令实现,所以分支程序设计的关键是选择分支的判断依据和如何将此依据转化为状态标志的变化。

分支机构举例:

将内存中的二进制数据转换成二位十六进制数显示。

(exmp2.asm)

DATSEGMENT

STRINGDB1AH,2BH,56H,78H,90H,0A2H,0B3H

DATENDS

COD,DS:

MOVSI,NUM;

要显示的字节数

MOVBX,OFFSETSTRING

MOVDL,[BX]

MOVDH,DL;

备份

MOVCL,4

SHRDL,CL;

高四位移到低四位

十六进制数转ASCII码

CMPDL,9

JBEDSP1

ADDDL,7

DSP1:

ADDDL,30H

MOVAH,2

INT21H

MOVDL,DH

ANDDL,0FH;

只保留低四位

JBEDSP2

ADDDL,7

DSP2:

MOVDL,'

;

显示分隔符

INCBX;

修改数据指针

DECSI;

循环控制

JNZLP

MOVAH,4CH

ENDSTART

第14次上课内容

分支程序举例:

CCTV幸运52有个猜商品价格的游戏,这里简化成猜数游戏。

根据提示信息输入你所猜的数,计算机经过与谜底比较后提示你高了或低了,如果猜中则恭喜你答对了。

(guess.asm)

GUESSANUMBER

DATASEGMENT;

段定义伪指令

MSG1DB10,13,'

GUESSANUMBER:

$'

数据定义

MSG2DB10,13,'

YOURNUMBERISLOWER!

GUESSAGAIN:

MSG3DB10,13,'

YOURNUMBERISHIGHER!

MSG4DB10,13,'

CONGRATULATEYOU!

YOURNUMBERISRIGHT!

$'

KEYDB‘4’

DATAENDS;

CODESEGMENT;

CODE,DS:

DATA;

段基假设

MOVAX,DATA;

段基装填

MOVDS,AX

MOVAH,9;

显示一个字符串

MOVDX,OFFSETMSG1

INT21H;

INPUT:

MOVAH,1;

从键盘上输入一个数字符到AL

INT21H;

CMPAL,KEY;

输入字符与谜底比较

JERIGHT;

相等

JAHIGHER;

高了

MOVDX,OFFSETMSG2;

低了

MOVAH,9

JMPINPUT

HIGHER:

MOVDX,OFFSETMSG3

MOVAH,9

RIGHT:

MOVDX,OFFSETMSG4

MOVAH,4CH;

结束程序,返回DOS

CODEENDS;

ENDBEGIN;

结束汇编

实验说明

1.实验内容中,1,2是供学生自己上机演示用例,内容3、4是要求学生自己设计程序来实现的任务。

2.实验目的和要求:

1)了解汇编语言程序的编辑、汇编、连接和调试过程及方法;

2)观察相关指令的功能和特点;

3)熟悉星研集成环境软件的使用方法。

4-4

循环结构程序设计

程序中的某一段需要连续多次重复运行,可以采用循环结构。

循环结构可以大大减少程序代码量,优化程序结构。

一、循环程序的结构和分类

1、结构

初始化——为循环准备,包括数据指针、控制条件和工作环境等的初始化;

循环体——包括:

循环工作部分+循环指针和循环变量修改;

循环工作部分——循环的主体,需要重复多次执行的工作;

循环修改部分——为循环工作部分提供数据的数据指针修改,

为循环控制修改循环变量;

循环控制——根据循环控制条件和循环变量的关系判断是否结束循环。

2、分类(多种分类方法)

1)按照循环体和循环控制的先后分

先执行后判断结构先判断后执行结构

2)按照循环控制的条件分

计数循环

条件循环

3)按照循环的层数分

单循环

双重循环

多重循环

二、按照循环体和循环控制的先后分

1、DO。

WHILE先执行后判断结构

例4-6:

(先执行后判断循环)已知从BLOCK开始有N个带符号字节数据,试编程找出其中数值最大的数存入MAX单元。

(exmp4-6.asm)

BLOCKDB2,34,67,-45,3,-54H,-23,-6H,

DB08,80,29,65H,-124,76,57,23H

NEQU$-BLOCK

MAXDB?

BEG:

MOVDS,AX

MOVCX,N-1

MOVAL,BLOCK

MOVBX,OFFSETBLOCK+1

CMPAL,[BX]

JGENEXT

MOVAL,[BX]

NEXT:

INCBX

LOOPLP

MOVMAX,AL

ENDBEG

2、WHILE。

DO先判断后执行结构

例4-7:

(先判断后执行循环)试编程从键盘上输入一位十进制数N,并计算N!

存入字变量Nj.如果计算溢出应提示.(exmp4-7.asm)

STRINGDB'

PLEASEINPUTANUMBER(0-9):

ERRDB'

YOURNUMBERISTOOLARGE'

10,13,24H

NJDW?

MOVAX,DAT

MOVDS,AX

REINPUT:

MOVDX,OFFSETSTRING

MOVAH,9

INT21H

MOVAH,1

CMPAL,39H

JAREINPUT

ANDAL,0FH

MOVCH,0

MOVCL,AL

INCCX

MOVDX,0

MOVAX,1

LOOPOPRT

JMPSHORTENDL

OPRT:

MULCX

JCOVER;

如果DX≠0,说明计算结果超出16位范围

JMPLP

OVER:

MOVDX,OFFSETERR

JMPREINPUT

ENDL:

MOVNJ,AX

MOVAH,4CH

INT21H

ENDBEG

 

三、按照循环控制的条件分

1、计数循环

上例4-6

2、条件控制循环

例4-8:

(条件控制循环)已知从STRING开始有一个以0DH

结尾的ASCII字符串,试编程求其长度(不含0DH)存入N单元。

(exmp4-8.asm)

DATSEGMENT

STRINGDB'

ABCDEFGHIJKLMN1234567'

0DH

NDW?

MOVDS,AXQ

MOVBX,0

MOVAL,0DH

CMPAL,STRING[BX]

JZFUND

INCBX

JMPLP

FUND:

MOVN,BX

3、双重控制循环(循环控制条件二个或二个以上)

例4-9:

(双重控制循环)关键字搜索。

已知从STRING开始有一个字符串(串长<

100)。

编程搜索其中是否有关键字符串'

如有,显示其相对串首的偏移量,如无,显示'

NOFOUND'

(exmp4-9.asm)

CDE12FGHIJKL456MNAB123FG7'

LENEQU$-STRING

KEYDB'

OFSTDB4DUP('

NOFDB10,13,'

NOFOUND$'

MOVAX,DAT

MOVCX,LEN

MOVBX,0

MOVAX,WORDPTRKEY

CMPAL,STRING[BX]

JNZNEXT

CMPAH,STRING+1[BX]

JZFUND

LOOPLP

MOVDX,OFFSETNOF

MOVAH,9

INT21H

JMPSHORTENDL

MOVAX,BX

MOVBL,10

DIVBL

ORAX,3030H

MOVWODRPTROFST,AX

MOVDX,OFFSETOFST

MOVAH,4CH

ENDBEGIN

四、按照循环的层数分

1、单层循环

2、多层循环

4-5子程序结构

一、过程定义

过程名PROCNEAR/FAR

保护现场

恢复现场

RET

二、子程序的用途

1、程序中需要多次运行的某一段相对独立的程序段可以用子程序的形式编写,主程序中多次调用,可以简化程序和开发工作量。

2、按照相对独立功能模块化程序设计:

各子模块之间的接口尽量简单,便于多人分工、合作开发软件。

三、子程序设计要点:

a)功能要明确,程序要现对独立,具有一定的通用性;

b)的设计和使用;

数据的输入输出接口要尽量简单,入口参数和出口参数尽量少。

入口参数和出口参数数量多时,可以采用内存数据块及其数据指针方式。

c)保护现场和恢复现场。

子程序中需要用什么资源就保护什么,恢复的顺序与保护的顺序相反。

四、子程序举例

例4-12:

将一字节二进制数据转换成二位十六进制数显示。

(exmp4-12.asm)

NUMEQU

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2