微机原理第5章_第1页
微机原理第5章_第2页
微机原理第5章_第3页
微机原理第5章_第4页
微机原理第5章_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 汇编语言是面向机器的编程语言,不同的汇编语言是面向机器的编程语言,不同的CPU有着不同的汇编语言。有着不同的汇编语言。汇编语言源程序汇编程序目标程序(机器语言)汇编 一条完整的汇编语言语句由以下几部分组成:一条完整的汇编语言语句由以下几部分组成:、,这些都称为,这些都称为标记。标记。DA1:MOV AX,100H;数据传送数据传送 标识符是为了程序便于理解和书写所使用的一些标识符是为了程序便于理解和书写所使用的一些字符,常作为一段程序或数据块的开头,用来指出后字符,常作为一段程序或数据块的开头,用来指出后面紧跟的指令或数据的地址。可用于指出转移指令的面紧跟的指令或数据的地址。可用于指出转移指

2、令的目标地址。目标地址。 DA1:MOV AX,100 ADD AX,1 JNZ DA1 保留字是汇编语言中预先保留下来具有特定意义保留字是汇编语言中预先保留下来具有特定意义的符号,只能作为固定用途。的符号,只能作为固定用途。 8086的的、都是保留字。保都是保留字。保留字不能用于标识符。留字不能用于标识符。 界符对一个程序或一条指令的两个部分起分隔作界符对一个程序或一条指令的两个部分起分隔作用。用。 常数是指令中出现的固定值,如立即数寻址中的立即数,常数是指令中出现的固定值,如立即数寻址中的立即数,直接寻址时的地址。直接寻址时的地址。常数可以分数值常数和字符串常数两类。常数可以分数值常数和字

3、符串常数两类。 按其进制的不同,可有二进制数、八进制数、十进制数、十六进制数等几种不同的表示形式,汇编语言中采用不同的后缀加以区分。:表示二进制数。例如,10100101B。:表示十进制数。例如,278D或278。:表示八进制数。例如,567Q,263Q。:表示十六进制数。例如,9AH,5678H。 是由单引号括起来的一串字符。 12345 要指出的是,此处的12345其值并非是十进制数12345,而是代表它们所对应的ASC码,即31H,32H,33H,34H,35H。 8086系统规定。对于16进制数,如果以AF开头,必须在前面加0。MOV AX,0FFFFH 在汇编语言程序中为了便于理解和

4、阅读程序,常在汇编语言程序中为了便于理解和阅读程序,常常加上注释。注释必须以;开头,可以加在任何一行常加上注释。注释必须以;开头,可以加在任何一行中。注释部分从分号起直至行尾。中。注释部分从分号起直至行尾。 表达式由操作数和运算符组成,在表达式由操作数和运算符组成,在。 操作数在内容上可以代表一个数据也可以代表一个存储单元操作数在内容上可以代表一个数据也可以代表一个存储单元地址。表达式中的操作数不同于指令中的操作数,对表达式中操地址。表达式中的操作数不同于指令中的操作数,对表达式中操作数的运算发生在汇编过程中,对指令操作数的运算发生在程序作数的运算发生在汇编过程中,对指令操作数的运算发生在程序

5、执行过程中。执行过程中。MOV AX,100H+2 MOV AX,102H ASM-86中有中有5类运算符,对表达式中运算符所定义的运算类运算符,对表达式中运算符所定义的运算发生在汇编过程中,在目标代码中只有运算的结果。发生在汇编过程中,在目标代码中只有运算的结果。START:MOV AL,20 INC AL JMP START+2MOV AL,80H AND 7FHMOV AL,0MOV AL,80H OR 7FHMOV AL,0FFHMOV AL,80H XOR 0FHMOV AL,8FHMOV AL,NOT 0MOV AL,0FFH 参与关系运算的两个操作数必须都是数据(或用符号表示的数

6、参与关系运算的两个操作数必须都是数据(或用符号表示的数据),或是同一段中的存储单元地址,结果是一数值。如果关系不据),或是同一段中的存储单元地址,结果是一数值。如果关系不成立,在汇编时结果为成立,在汇编时结果为 ;如果关系成立,在汇编时结果为;如果关系成立,在汇编时结果为或或。关系运算配合逻辑运算可用于条件汇编。关系运算配合逻辑运算可用于条件汇编。MOV AL,5 GT 4MOV AL,0FFHMOV AX,5 GT 4MOV AX,0FFFFHMOV BX,(,(PORT LT 5)AND 20)OR(PORT GE 5)AND 30)若若PORT小于小于5 MOV BX,20若若PORT大

7、于或等于大于或等于5 MOV BX,30 取地址偏移量取地址偏移量 取地址段值取地址段值MOV BX,OFFSET DA1 = LEA BX,DA1MOV AX,SEG DA1MOV DS,AX 取存储单元类型取存储单元类型 KKKDB 20TYPE KKK 值为值为1 计算存储区的单元数计算存储区的单元数 计算存储区的字节总数计算存储区的字节总数 ABC DW 100DUP(?)(?)TYPE ABC 值为值为2LENTH ABC值为值为100SIZE ABC值为值为200对存储单元规定类型,常和对存储单元规定类型,常和,等伪指令一同使用。等伪指令一同使用。MOV BYTE PTR1000H

8、,0PTR也可用来更改已经规定了类型的存储单元的类型。也可用来更改已经规定了类型的存储单元的类型。 XYZDW 100DUP(?)(?)PPEQUBYTE PTR XYZQQEQUDWORD PTR XYZ 用来改变存储单元类型用来改变存储单元类型 XYZ1EQUTHIS BYTEXYZDW1234H 8086汇编语言中有两种语句,指令性语句和指示性语句。就是8086的一条指令,汇编过程中会产生可执行的代码。也叫,用来为汇编程序提供某些信息,让汇编程序在汇编过程中执行某些特定操作。指示性语句在汇编过程中不会产生可执行的代码。ABCDB100 伪指令给符号定义一个值。在程序中,凡是出现该符号的地

9、方,汇编时均用其值代替。 ABCEQU100;ABC代替常数代替常数100 XYZEQUABC SUMEQU30*25;SUM代替数值表达式代替数值表达式 COUNTEQUCX;COUNT代替寄存器代替寄存器CX MEQUMOV;M代替指令助记符代替指令助记符MOV MOV AL,ABC MOV AL,100MOV AX,COUNT MOV AX,CX 需要注意的是,一个符号一经EQU伪指令赋值后,在整个程序中,不允许再对同一符号重新赋值。如需重新赋值必须先解除原有的赋值。 ASM-86提供了解除标号赋值的伪指令PURGE。定义字节,即每个数据是1个字节。定义字,即每个数据占1个字(2个字节)

10、。定义双字,即每个数据占2个字(4个字节)。 低字部分在低地址,高字部分在高地址。定义4字长,即每个数据占4个字(8个字节) 。定义10个字节长。 CRDB0DH AMNDW0FFDH BUF_DISDB? DONTDB 9DUP(?) STDBHOW ARE YOU! TABLEDB00,01,03,02,06DB22,44,66,77,88 1000H:ABCDB0 MOV AL,ABC MOV AL,1000H MOV ABC,ALMOV 1000H,ALMOV BYTE PTRDI,0MOV WORD PTR2000,0JMP DWORD PTRSI 和和 成对使用,前者用于定义一成对

11、使用,前者用于定义一个段的开始,后者用于定义段的终止。个段的开始,后者用于定义段的终止。例:例:DATA SEGMENT0000H:10HM1DB10H0001H:34HM2DW1234H0002H:12HDATA ENDS 用于说明已定义的段作为哪个段使用。用于说明已定义的段作为哪个段使用。ASSUME DS:DATA 用于规定后续程序存放单元的地址偏移量。用于规定后续程序存放单元的地址偏移量。ORG 2000HMOV AX,0MOV CX,8MOV AX,DATAMOV DS,AX 在在ASM-86中过程就是子程序。中过程就是子程序。和和成成对使用,前者用于定义一个过程的开始,后者用于过程

12、对使用,前者用于定义一个过程的开始,后者用于过程的终止。两者之间的内容作为过程,即子程序。的终止。两者之间的内容作为过程,即子程序。表示子程序供段内调用,表示子程序供段内调用,表示子程序供段间调用,表示子程序供段间调用,如没有明确指出默认子程序供段内调用。如没有明确指出默认子程序供段内调用。AA1 PROC NEAR RETAA1ENDP AA2 PROC FARRETAA2ENDP 伪指令伪指令END是源程序结束的标志,其后的表达式通是源程序结束的标志,其后的表达式通常是程序第一条指令前的标号。如果程序第一条指令位常是程序第一条指令前的标号。如果程序第一条指令位于源程序最前端表达式可省略。对

13、源程序中于源程序最前端表达式可省略。对源程序中END后的部后的部分汇编时不作处理。分汇编时不作处理。 流程图是表示程序结构的图形,它由逻辑框和流程图是表示程序结构的图形,它由逻辑框和流程线组成。流程线组成。 流程线是指示程序逻辑处理顺序的符号。流程线是指示程序逻辑处理顺序的符号。 逻辑框是表示程序逻辑处理功能的符号。逻辑框是表示程序逻辑处理功能的符号。 表示程序的逻辑起点和终点。表示程序的逻辑起点和终点。 表示程序的一种处理功能。表示程序的一种处理功能。 表示一个判断点,程序在此产生分支。表示一个判断点,程序在此产生分支。 表示程序的来源或去向。表示程序的来源或去向。 带重复前缀的字符串传送指

14、令流程带重复前缀的字符串传送指令流程 REP MOVSBAB DISI 修改修改SI,DICX=CX-1CX=0?YN 顺序结构是最简单顺序结构是最简单的一种程序结构,在流的一种程序结构,在流程图上表示为若干处理程图上表示为若干处理框的串行连接。用编程框的串行连接。用编程语言表达时就是一条语语言表达时就是一条语句紧跟一条语句顺序执句紧跟一条语句顺序执行。行。S1S1S2S2SnSnDSEG SEGMENTBCD DB86HASC DB2DUP(?)(?);高位在前高位在前DSEG ENDSCSEG SEGMENT ASSUME CS:CSEG,DS:DSEGSTART:MOV AX,DSEG

15、MOV DS,AX MOV AL,BCD AND AL,0FH ADDAL,30H MOV ASC+1,AL MOV AL,BCD MOV CL,4 SHR AL,CL ADD AL,30H MOV ASC,AL HLTCSEG ENDS END START 分支结构用于在程序中产生分支分支结构用于在程序中产生分支,根据条件决根据条件决定执行程序的哪个分支。分支结构在流程图中表示定执行程序的哪个分支。分支结构在流程图中表示为判断框。用编程语句表达时,判断框一般是条件为判断框。用编程语句表达时,判断框一般是条件转移指令。转移指令。条件条件= =真?真?S1S1S2S2YN 单分支结构程序在一个判

16、断点只使用一个判断框单分支结构程序在一个判断点只使用一个判断框产生程序的两个分支。产生程序的两个分支。 编写子程序,将编写子程序,将AL中的中的8 8位二进制数转换为位二进制数转换为2 2位组合位组合BCD码。如码。如果果AL内容超出内容超出2位位BCD码所能表达的范围,则退出程序时置位码所能表达的范围,则退出程序时置位CF;若能正常转换,则将若能正常转换,则将CF清清0 0,并将转换结果存放在,并将转换结果存放在AL中。中。AL99?AL99?转换转换置位置位CFCFYN返回返回返回返回入口入口BIN2BCD:CMP AL,99 JBE BB1 STC RET BB1: MOV CL,10

17、XOR AH,AH DIV CL MOV CL,4 SHL AL,CL OR AL,AH RETBIN2BCD:CMP AL,99 JBE BB1 STC RET BB1: AAM MOV CL,4 SHL AH,CL OR AL,AH RET 在多分支结构程序中,往往根据条件的不同状态在多分支结构程序中,往往根据条件的不同状态产生出程序的多个分支。产生出程序的多个分支。 在这种多分支结构程序中,连续使用多个判断框在这种多分支结构程序中,连续使用多个判断框产生出程序的多个分支。产生出程序的多个分支。 在在AL中存放键盘输入的数字中存放键盘输入的数字09的的ASCII码,编程根据码,编程根据AL

18、的内容分别执行的内容分别执行ADR0,ADR1,ADR9等程序段。等程序段。TBENCH: CMP AL,0 JZ ADR0 CMP AL,1 JZ ADR1 CMP AL,8 JZ ADR8ADR9: ADR0: ADR8: AL=AL=0 0AL=AL=1 1AL=AL=8 8执行执行ADR0ADR0执行执行ADR1ADR1执行执行ADR8ADR8执行执行ADR9ADR9Y YY YY YN NN NN N 在这种多分支结构程序中,把多个分支程序的起在这种多分支结构程序中,把多个分支程序的起始地址(入口地址)依次顺序存放在存储区中,这个始地址(入口地址)依次顺序存放在存储区中,这个存储区称

19、为地址表。根据条件的不同状态将相应处理存储区称为地址表。根据条件的不同状态将相应处理程序的入口地址从地址表中找出,然后利用间接转移程序的入口地址从地址表中找出,然后利用间接转移指令产生出程序的多个分支。指令产生出程序的多个分支。 在在AL中存放键盘输入的数字中存放键盘输入的数字09的的ASCII码,编程根据码,编程根据AL的内容的内容分别执行分别执行ADR0,ADR1,ADR9等程序段。等程序段。ADRTAB DW OFFSET ADR0 DW OFFSET ADR1 DW OFFSET ADR9BENCH: SUB AL,0 XOR AH,AH SHL AX,1 LEA DI,ADRTAB

20、ADD DI,AX JMP WORD PTRDI ADR0: ADR1: ADR9: 在这种多分支结构程序中,把转移到多个分支程在这种多分支结构程序中,把转移到多个分支程序的无条件转移指令(机器码)依次顺序存放在存储序的无条件转移指令(机器码)依次顺序存放在存储区中(代码段),这个存储区称为指令表。根据条件区中(代码段),这个存储区称为指令表。根据条件的不同状态控制程序转移到指令表中对应所需程序段的不同状态控制程序转移到指令表中对应所需程序段的转移指令处,然后利用表中的转移指令最终转移到的转移指令处,然后利用表中的转移指令最终转移到所需的分支处理程序段。所需的分支处理程序段。 循环结构用于控制

21、一段程序重复执行。分可控循环结构用于控制一段程序重复执行。分可控制循环和不可控循环(死循环)两种情况。制循环和不可控循环(死循环)两种情况。 进入循环后无法自行退出循环。进入循环后无法自行退出循环。S1S1 STOP: JMP STOP 根据条件是否满足决定程序段是否重复执行,每根据条件是否满足决定程序段是否重复执行,每执行一遍都要对条件进行判断,直到条件不满足时,执行一遍都要对条件进行判断,直到条件不满足时,停止重复执行。停止重复执行。条件条件= =真?真?S1S1YN条件条件= =真?真?S1S1YN 使用一个判断条件控制循环执行。在流程图中使用一个判断条件控制循环执行。在流程图中S1S1

22、部分为顺序或分支结构,不再包含循环结构程序段。部分为顺序或分支结构,不再包含循环结构程序段。 将将DS段段1000H单元开始存放的单元开始存放的10个大写字母转换成小写个大写字母转换成小写字母存放到字母存放到ES段段2000H开始的单元。开始的单元。 MOV SI,1000H MOV DI,2000H MOV CX,10 CLDL1:LODSB ADD AL,20H STOSB LOOP L1 HLT置初值置初值 SIALSIALAL=AL+20HAL=AL+20HALDIALDI修正修正SISI,DIDICX=CX-1CX=CX-1CX=0CX=0?停机停机N NY Y 循环结构程序由三部分

23、组成。循环结构程序由三部分组成。 需要重复执行的程序段,包括循环需要重复执行的程序段,包括循环,它是循环结构程序要完成的主要任务;另一部,它是循环结构程序要完成的主要任务;另一部分是循环的分是循环的,主要完成循环结束条件的判断。,主要完成循环结束条件的判断。 控制循环结束的条件。控制循环结束的条件。 循环中所使用的各种变量的初值。一循环中所使用的各种变量的初值。一是循环工作部分的初值;另一部分是结束条件的初值。是循环工作部分的初值;另一部分是结束条件的初值。置初值是循环结构程序的重要部分。置初值是循环结构程序的重要部分。 多重循环指嵌套的循环,在外循环的循环体中还多重循环指嵌套的循环,在外循环

24、的循环体中还有采用循环结构的程序段。有采用循环结构的程序段。 软件延时子程序。软件延时子程序。DELAY:MOV AX,1000 LP0:MOV BX,1000 LP1:MOV CX,1000 LP2:NOP NOP LOOP LP2 DEC BX JNZ LP1 DEC AX JNZ LP0 RET 对对1010个无符号数由小到大排序。个无符号数由小到大排序。 2222H H,55H55H,36H36H,97H97H,11H11H,AFHAFH,06H06H,88H88H,FFHFFH,66H66H2222H H,55H55H,36H36H,97H97H,11H11H,AFHAFH,06H0

25、6H,88H88H,66H66H,FFHFFH2222H H,55H55H,36H36H,97H97H,11H11H,AFHAFH,06H06H,66H66H,88H88H,FFHFFH2222H H,55H55H,36H36H,97H97H,11H11H,06H06H,AFHAFH,66H66H,88H88H,FFHFFH2222H H,55H55H,36H36H,97H97H,06H06H,11H11H,AFHAFH,66H66H,88H88H,FFHFFH2222H H,55H55H,36H36H,06H06H,97H97H,11H11H,AFHAFH,66H66H,88H88H,FFH

26、FFH2222H H,55H55H,06H06H,36H36H,97H97H,11H11H,AFHAFH,66H66H,88H88H,FFHFFH2222H H,06H06H,55H55H,36H36H,97H97H,11H11H,AFHAFH,66H66H,88H88H,FFHFFH06H06H,2222H H,55H55H,36H36H,97H97H,11H11H,AFHAFH,66H66H,88H88H,FFHFFH2222H H,55H55H,36H36H,97H97H,11H11H,AFHAFH,66H66H,88H88H,FFHFFH2222H H,55H55H,36H36H,97

27、H97H,11H11H,66H66H,AFHAFH,88H88H,FFHFFH2222H H,55H55H,36H36H,11H11H,97H97H,66H66H,AFHAFH,88H88H,FFHFFH2222H H,55H55H,11H11H,36H36H,97H97H,66H66H,AFHAFH,88H88H,FFHFFH2222H H,11H11H,55H55H,36H36H,97H97H,66H66H,AFHAFH,88H88H,FFHFFH11H11H,2222H H,55H55H,36H36H,97H97H,66H66H,AFHAFH,88H88H,FFHFFH2222H H,5

28、5H55H,36H36H,97H97H,66H66H,AFHAFH,88H88H,FFHFFH2222H H,55H55H,36H36H,97H97H,66H66H,88H88H,AFHAFH,FFHFFH2222H H,55H55H,36H36H,66H66H,97H97H,88H88H,AFHAFH,FFHFFH2222H H,36H36H,55H55H,66H66H,97H97H,88H88H,AFHAFH,FFHFFH36H36H,55H55H,66H66H,97H97H,88H88H,AFHAFH,FFHFFH36H36H,55H55H,66H66H,88H88H,97H97H,AF

29、HAFH,FFHFFH55H55H,66H66H,88H88H,97H97H,AFHAFH,FFHFFH55H55H,66H66H,88H88H,97H97H,AFHAFH,FFHFFH 排序中实际要使用两重循环,内层循环完成一轮比较中,各元素顺序两两比较及交换;外循环控制一轮一轮对各元素进行比较直到全部数据排序完成。 内层循环每一轮的循环次数是确定的,可使用CX作为循环计数器,CX的初值在第一轮循环为9,第二轮为8,以后每轮初值依次减少1。 外层循环不使用次数控制循环,其终止条件为一轮内循环中如果或,此时认为排序完成。BX:内循环初值CX:内循环计数器SI: 内循环数据指针,指向两两比较的右

30、侧元素DX:指示最后一次交换发生时,右侧元素的地址TABLE DB 22H,55H,36H,97H,11H DB 0AFH,6,88H,0FFH,66HSTART: MOV BX,9 LP0: MOV SI,OFFSET TABLE+9 MOV CX,BX MOV DX,SI LP1: MOV AL,SI CMP AL,SI-1 JNB LP2 MOV AH,SI-1 MOV SI,AH MOV SI-1,AL MOV DX,SI LP2: DEC SI LOOP LP1 DEC BX CMP DX,OFFSET TABLE+9 JNZ LP0 RET入口入口BX=9BX=9SISI末地址末地

31、址CXBXCXBXDXSIDXSI SISI-1?SISI-1?交换交换 SISI-1SISI-1 DXSI DXSISI=SI-1SI=SI-1CX=CX-1CX=CX-1CX=0CX=0?BX=BX-1BX=BX-1DX=DX=末地址?末地址?返回返回N NY YN NN NY YY Y 使用子程序可以有效节省代码空间,使整个程使用子程序可以有效节省代码空间,使整个程序的结构更加清晰。序的结构更加清晰。 可以通过使用子程序调用和返回指令实现主程可以通过使用子程序调用和返回指令实现主程序和子程序间的转返。序和子程序间的转返。CALLRET 子程序分段内调用子程序分段内调用(NEAR)和段间和

32、段间(FAR)调用,注意调用和返回指令应配套。调用,注意调用和返回指令应配套。 为使子程序有较好的通用性,一般将子程序中使用到的寄存器为使子程序有较好的通用性,一般将子程序中使用到的寄存器的内容在进入子程序时通过堆栈保存起来,在子程序返回前将保存的内容在进入子程序时通过堆栈保存起来,在子程序返回前将保存的内容恢复到相应寄存器中。的内容恢复到相应寄存器中。子程序:子程序: PUSH AX PUSH BX PUSH CX PUSHF POPF POP CX POP BX POP AX RET 由于堆栈采用后进先出的结构,现场保护时的入栈顺序与恢复由于堆栈采用后进先出的结构,现场保护时的入栈顺序与恢

33、复现场时的出栈顺序必须现场时的出栈顺序必须。 主程序要通过一定方式把需要子程序处理的数据传递给子程主程序要通过一定方式把需要子程序处理的数据传递给子程序,子程序也需要通过一定方式将处理结果传递给主程序。这种序,子程序也需要通过一定方式将处理结果传递给主程序。这种参数传递的方式在很大程度上决定了子程序的通用性和易用性。参数传递的方式在很大程度上决定了子程序的通用性和易用性。 在主程序和子程序间实现约定一组用于存放参数的寄存器,在主程序和子程序间实现约定一组用于存放参数的寄存器,当主程序调用子程序时将需要传递给子程序的参数存放到约定好当主程序调用子程序时将需要传递给子程序的参数存放到约定好的寄存器

34、中。子程序从寄存器中获取参数处理完毕后将结果存放的寄存器中。子程序从寄存器中获取参数处理完毕后将结果存放到事先约定好的寄存器中,子程序返回后主程序可以从寄存器中到事先约定好的寄存器中,子程序返回后主程序可以从寄存器中获得结果。获得结果。 求数求数 N N 的平方根,可以从的平方根,可以从 N N 中依次减去由中依次减去由1 1开始的连续奇开始的连续奇数,减去的奇数个数即为平方根。如果正好能够减到数,减去的奇数个数即为平方根。如果正好能够减到0 0,则能够,则能够得到精确的平方根,否则只能得到平方根的整数部分。得到精确的平方根,否则只能得到平方根的整数部分。 25-1-3-5-7-9=0入口:入

35、口:DX 被开方数被开方数出口:出口:AX 平方根平方根SQROOT PROC NEAR PUSHF PUSH BX XOR AX,AX AND DX,DX JZ SQRT2SQRT1: MOV BX,AX SHL BX,1 INC BX SUB DX,BX JC SQRT2 INC AX JMP SQRT1SQRT2: POP BX POPF RETSQROOT ENDP保护现场保护现场AXAX清零清零形成奇数形成奇数DX-DX-奇数奇数DX=0DX=0?够减?够减?恢复现场恢复现场 返回返回增量增量AXAXN NN NY YY Y 计算100的平方根,结果存放到内存1000H单元。MOV

36、DX,100CALL SQROOTMOV 1000H,AX 使用寄存器传递参数,使用简单,处理速度快,但受寄存器数目的限制,只适合的传递。 事先约定使用一部分存储单元传递参数。适于大量参数的传递。 通过内存传递参数固定占用存储单元,内存利用率低,使用不够灵活,通用性差。SQROOT PROC NEAR PUSH DX PUSH BX PUSH AX PUSHF MOV DX,ARGX XOR AX,AX AND DX,DX JZ SQRT2SQRT1: MOV BX,AX SHL BX,1 INC BX SUB DX,BX JC SQRT2 INC AX JMP SQRT1SQRT2: MOV ROOT,AX POPF POP AX POP BX POP DX RETSQROOT ENDP入口:入口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论