角度正弦值计算程序设计 .doc

上传人:星星 文档编号:1081811 上传时间:2024-04-14 格式:DOC 页数:31 大小:435.50KB
下载 相关 举报
角度正弦值计算程序设计 .doc_第1页
第1页 / 共31页
角度正弦值计算程序设计 .doc_第2页
第2页 / 共31页
角度正弦值计算程序设计 .doc_第3页
第3页 / 共31页
角度正弦值计算程序设计 .doc_第4页
第4页 / 共31页
角度正弦值计算程序设计 .doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、目 录1 设计背景12 设计目的与要求121 设计目的122 设计要求23 设计思路与过程231用户输入部分设计过程2311 提示用户输入2312 用户输入并判断其合法性4313初步处理用户输入值832正弦值计算1133结果输出134 主程序流程图和程序清单155 程序调试286 运行结果297 心得体会29参考文献31301 设计背景汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高

2、的程序。汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机,有着不同的结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同种类的计算机间是互不相通的。汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的汇编程序的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。汇编语言像机器指令一样,

3、是硬件操作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。2 设计目的与要求21 设计目的通过课程设计,主要达到以下目的:1)使学生增进对汇编语言的认识,加强用汇编语言编程的能力。2)使学生掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等。3)使学生了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础。4)通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序

4、中,提高动手能力5)进一步掌握屏幕输出显示的设计方法。22 设计要求设计一个程序,计算角度正弦值,角度由用户输入。3 设计思路与过程分析设计要求,有三个基本的部分,即为:“用户输入角度” 、“计算正弦值” 、“结果输出” 。31用户输入部分设计过程此部分的功能大体为:(1)提示用户输入角度(2)用户输入数值并判断其合法性(3)处理用户输入值311 提示用户输入本部分功能是在屏幕上显示“a”字样,提示用户输入角度。MOV AL,0E0H MOV BL,0dH MOV AH,0EH INT 10H MOV AL,03DH MOV BL,0dH MOV AH,0EH INT 10H上面所示的代码即是

5、输出提示的相关程序。利用字符输出命令提示用户输出。本部分需要使用到中断的相关知识。 中断类型分类 处理CPU特殊操作( 除0、溢出 )的00H、04H类型。 为DEBUG调试程序设置的单步( 01H )、断点( 03H )类型。 处理CPU的NMI引脚信号的02H类型,非屏蔽硬中断。 处理CPU的INTR引脚信号的080FH类型,可屏蔽类型硬中断。 用INT指令调用的中断:BIOS功能调用(如101AH)和DOS功能调用 (如 21H)本部分使用到的是用INT指令调用的中断。具体为:BIOS功能调用中断INT 10H与DOS功能调用中断INT 21H。(1)INT 10H中断,其入口参数要求将

6、功能码预置入AH寄存器中,共有15种子功能可以选择,它们的功能名称、子功能号、其他入口参数及输出结果如表1所示(只列出本次设计中使用到的功能)。表1 BIOS显示输出功能列表功能名称功能号输入参数输出结果显示方式控制00HAL=4光点分辨率为320200的彩色图形方式字符显示0EHAL=字符BL=前景色在当前页面按电传打字方式显示字符(2)INT 21H中断可实现系统功能调用。它是可供系统程序和应用程序调用的一个极其重要的中断,内含近百个系统子功能。操作系统的内核主要由它构成。系统功能调用的近百个系统自功能已经标准化,调用它们时完全不依赖任何硬件设备,因此,用这些子功能编写研制成的系统软件可以

7、在任何支持DOS的机器上运行。调用INT 21H的方法为:先在AH寄存器中放入功能号,在按照该功能调用的要求设置好其他的有关寄存器,然后执行“INT 21H”。本次设计用到的功能见表2所示。表2 INT 21H功能调用说明表功能号功能入口参数出口参数4CH终止当前程序并返回调用程序AL=退出码01H带回显得键符输入AL=输入字符02H字符显示DL=输出字符09H字符串显示DS:DX=缓冲区首址312 用户输入并判断其合法性提示用户输入后,程序能够接受用户输入的角度值。并把用户输入的字符放入一个暂存单元内。因为在汇编语言中,在调用INT 21H中断中的字符输入功能即AH=01H后,用户输入的内容

8、会在屏幕上回显出来,虽然在屏幕上显示的是所输入的数值或者是其他的字母,但是真正存放在AL单元中的内容则是它们所对应的ACSII码值。而且在用户输入数值或其他内容后,程序应该可以初步的判断用户输入的值是不是合法的,即可以判断出来用户输入的是否是数字值。当用户输入其他字符,如字母、符号等时,程序就可以做出判断并调用报错子程序而转入对错误的处理过程。程序设定为按下“q”键、“Q”键都可以实现程序退出。图1所示为输入部分子程序流程图。图1 input子程序流程图相关代码为:CMP SI,0H JZ YZX JMP YZX1YZX: CMP AL,0DH JZ ERRRYZX1: CMP AL,0DH

9、JZ INPUT2 CMP AL,q JZ EXIT CMP AL,Q JZ EXIT CMP AL,30H JB ERRR CMP AL,39H JA ERRR上面所示的代码即是初步判断用户输入值合法性的相关程序内容,在上面的程序中涉及了条件跳转指令的相关知识。计算机执行程序一般是顺序执行的,如果要改变程序的正常执行顺序,就必须人为的改变E(IP)的内容。或者既要改变E(IP)内容,同时又要改变代码段CS的段基址才能使程序发生转移。在80X86指令系统中,控制程序转移和调用的指令种类丰富。按照转移条件,可分为无条件转移和有条件转移;按照转移地址范围,可分为段内转移和段间转移;按照获取转移地址

10、的方法,又可以分为直接转移和间接转移。调用指令的分类和转移指令类似。1无条件转移指令 JMP OP1指令功能为无条件的控制程序转移到OP1指定的目标地址。根据目标地址寻找方式可分为直接转移和间接转移,其指令格式也不尽相同。2条件转移指令 JCC条件转移指令格式:JCC OP1指令执行时将测试FLAGS寄存器中的一个或者多个标志,如果条件CC成立,将控制程序转移到OP1指定的目的地址,否则顺序执行下一条指令。在8086/8088中,所有条件转移指令都为短转移(转移距离为-128到+127)。80386/80486则将其扩展到段内转移。16位寻址方式时,即转移的距离为64K;32位寻址方式时为4G

11、。条件转移指令执行时对预先指定的条件标志进行测试,如果条件成立,则程序转移到指令指定的目标地址执行指令;若不满足条件,则顺序执行下一条指令。各种转移条件都隐含在操作码助记符中,有的指令有几种等价的操作码助记符。表3列出了本次设计中用到的几种条件跳转指令及其功能。表3 条件转移指令助记符描述标志JA如果高于,转移CF=0且ZF=0JB如果低于,转移CF=0JEJZ如果等于,转移如果为零,转移ZF=1JNEJNZ如果不等于,转移如果为零,转移ZF=0313初步处理用户输入值虽然用户输入的数值在屏幕上显示的是十进制的整数,但是真正存储到计算机相关单元中的却是与此相对应的ASCII码值,为了存储的方便

12、和以后查表求得正弦值的方便,需要对用户输入的ASCII码值进行转换。转换成为16进制的数值并存放于DIZHI单元中。譬如用户输入30这个角度值,程序应该可以首先判断出用户输入的是一个两位数,之后存入指定的内存单元。依次放入存储单元的是ACSII码“33H”、“30H”以及回车对应的ASCII码值“0DH”。之后程序计算这几个值,即将33H减去30H并乘以10H作为十六进制的十位;30H减去30H作为十六进制的个位;而程序自动判断“0DH”为回车确认而自动舍弃。下图2为初步处理用户输入的子程序流程图。以下程序为实现这些功能的代码:CAL PROC NEAR MOV AX,0 MOV AL,INP

13、UTS+2 CMP AL,0 JZ FANGFA2 MOV AL,INPUTS SUB AL,30H MOV BL,64H MUL BL MOV DIZHI,AX MOV AL,INPUTS+1 SUB AL,30H MOV BL,0AH MUL BL ADD DIZHI,AX MOV AL,INPUTS+2 MOV AH,0 SUB AL,30H ADD DIZHI,AX JMP CALEND FANGFA2:MOV AX,0 MOV AL,INPUTS+1 CMP AL,0 JZ FANGFA1 MOV AL,INPUTS SUB AL,30H MOV BL,0AH MUL BL MOV

14、DIZHI,AX MOV AL,INPUTS+1 SUB AL,30H ADD DIZHI,AX JMP CALENDFANGFA1: MOV BX,0 MOV BL,INPUTS SUB BL,30H MOV DIZHI,BX CALEND:RETCAL ENDP在经过了以上的几个步骤之后,用户完成了角度的输入并且程序对用户输入的数据进行了初步的转化,接下来则进入了正弦值的计算过程。32正弦值计算正弦值的计算是本程序的关键部分。正确方法的选择不但关系到输出精确度,还关系到程序的执行速度和效率。在算法的选择上,设计之初有三种备选方案。1 使用协处理器直接计算正弦值在80486处理器中存在可以支

15、持高精度、高速度的整数和浮点数运算指令的数字协处理器FPU。FPU可以支持很多复杂的数学运算,而正弦值的计算也在其中。选用协处理器来计算正弦值的话不但代码量可以大大减少,运算的速度也是很高的。这是协处理器方法计算正弦值的最大好处。但是最终没有采用这种方法,主要是因为所学的知识中完全没有涉及到协处理器使用的相关内容,而其采用浮点数的话还要对输入数值进行格式化处理,这些都大大超过了我们现阶段所学到的知识,因此最终放弃了这个方法。2 用泰勒级数展开法求正弦值正弦运算可以使用泰勒级数的完全展开进行计算,当泰勒级数可以取得无限项时,就能精确的得到所求得正弦值。下式为正弦值的泰勒级数展开式:采用这种算法的

16、话,最大的优点就是可以直接用加减乘除四种基本运算就可以实现复杂的正弦值计算。但是采用这种方法的话要解决求阶乘、求高次方、以及大整数乘除法的解决。对于这些问题的解决要分别编写出相应的计算程序。因为要保证一定的精度,至少要进行10位数的乘除法。经过分析和具体的编写,发现如果采用这种方法,将大大增加程序的复杂度,降低了程序的可阅读性。并且也将大大加长编写时间。考虑到课程设计的时间安排,最后还是放弃了这种方法。3 查表法求得正弦值在考虑了前两种算法后,最终选定了用查表法求得正弦值。查表法指的是将0到90度对应的正弦值存储到内存中,当用户输入角度后,程序按照用户输入的角度查找表中相应的正弦值。使用查表法

17、求得正弦值的优点是快捷直观,并且编写出的代码清晰可读性好。而查表法的缺点也是显而易见的,那就是占有了部分存储空间。但是综合考虑时间和空间成本,选用查表法是最合理的。为了尽量的减少存储代码的存储空间,只制作了0到90度的正弦表,而90到360度的正弦表没有列出,而是通过上面所示的语句进行判断转化。并且词语可以判断用户输入角度的范围是否越界并报错。这里使用到了第一部分中经过转化程序初步转化过的数值。判断出输入角度的范围接下来程序对应四种处理方式来进行查表。根据的是正弦值在一个周期的范围内所出现的横向对称性和纵向对称性譬如:这样一来,正弦表一项可以节省为原来的1/4。很好的起到了节省空间的目的。33

18、结果输出结果输出包括最终结果的转化、正确结果的输出和错误提示两部分。处于制作方便和节省空间的考虑,正弦表采用了如下例的制作方式:46H,95H,45H,40H ;28,27度正弦值50H,00H,48H,48H ;30,29度正弦值52H,99H,51H,50H ;32,31度正弦值 这样一来就需要一个转化程序,把显示为10进制的16进制值转化为相应的ASCII码。譬如30度的正弦值为0.500,而表中的对应项为50H,00H。经过转化程序应该转化为“35H,30H,30H,30H”。下图3为结果转化子程序流程图。以下所示即为转化程序:CHANGE PROC NEAR MOV SI,0 MOV

19、 DI,0CHANGE1:MOV AX,0H MOV AL,RESULT+SI MOV BL,10H DIV BL ADD AH,30H ADD AL,30H MOV FINAL+DI,AL MOV FINAL+DI+1,AH INC SI ADD DI,2 CMP SI,2 JZ CHANGE2 JMP CHANGE1 CHANGE2:RETCHANGE ENDP正确结果经过转化就利用显示程序在屏幕上显示出来了,而错误的输入会直接跳转到错误提示部分。错误提示给出相应的说明并提示用户再次输入。4 主程序流程图和程序清单主程序流程如见下图4:下面所示的是程序清单:DATA SEGMENTMSG1

20、 DB 05H,0B1H,0B2H,PLEASE INPUT THE ANGLE,01,0AH,0DH ;欢迎界面字样和图画 INPUTS DB 3H DUP(0) ;用户输入数据的ASCII码形式暂存单元DIZHI DW 1H DUP(0) ;取正弦表的偏移地址RESULT DB 00H,00H,$ ;结果的小数部分FINAL DB 00H,00H,00H,00H,0AH,0DH,$CUOWU1 DB 0AH,0DH,Your input is illegal,0AH,0DH,$;输入错误提示CUOWU2 DB The number you input must in 0360,0AH,0D

21、H,$ OUT1 DB 0AH,0DH,SIN,0E0H,=0.,$OUT2 DB 0AH,0DH,SIN,0E0H,=-0.,$TISHI DB 0AH,0DH,PRESS Q TO EXIT,0AH,0DH,$;正弦表TAB DB 99H,99H,99H,98H ;90,89度正弦值 DB 99H,93H,99H,86H ;88,87度正弦值 DB 99H,75H,99H,61H ;86,85度正弦值 DB 99H,45H,99H,25H ;84,83度正弦值 DB 99H,02H,98H,77H ;82,81度正弦值 DB 98H,48H,98H,16H ;80,79度正弦值 DB 97

22、H,81H,97H,44H ;78,77度正弦值 DB 97H,03H,96H,59H ;76,75度正弦值 DB 96H,13H,95H,63H ;74,73度正弦值 DB 95H,11H,94H,55H ;72,71度正弦值 DB 93H,97H,93H,36H ;70,69度正弦值 DB 92H,72H,92H,05H ;68,67度正弦值 DB 91H,35H,90H,63H ;66,65度正弦值 DB 89H,88H,89H,10H ;64,63度正弦值 DB 88H,29H,87H,46H ;62,61度正弦值 DB 86H,60H,85H,72H ;60,59度正弦值 DB 84

23、H,80H,83H,87H ;58,57度正弦值 DB 82H,90H,81H,92H ;56,55度正弦值 DB 80H,90H,79H,86H ;54,53度正弦值 DB 78H,80H,77H,71H ;52,51度正弦值 DB 76H,60H,75H,47H ;50,49度正弦值 DB 74H,31H,73H,14H ;48,47度正弦值 DB 71H,93H,70H,71H ;46,45度正弦值 DB 69H,46H,68H,20H ;44,43度正弦值 DB 66H,91H,65H,61H ;42,41度正弦值 DB 64H,28H,62H,93H ;40,39度正弦值 DB 61

24、H,57H,60H,18H ;38,37度正弦值 DB 58H,78H,57H,36H ;36,35度正弦值 DB 55H,92H,54H,46H ;34,33度正弦值 DB 52H,99H,51H,50H ;32,31度正弦值 DB 50H,00H,48H,48H ;30,29度正弦值 DB 46H,95H,45H,40H ;28,27度正弦值 DB 43H,84H,42H,26H ;26,25度正弦值 DB 40H,67H,39H,07H ;24,23度正弦值 DB 37H,46H,35H,84H ;22,21度正弦值 DB 34H,20H,32H,56H ;20,19度正弦值 DB 30

25、H,90H,29H,24H ;18,17度正弦值 DB 27H,56H,25H,88H ;16,15度正弦值 DB 24H,19H,22H,50H ;14,13度正弦值 DB 20H,79H,19H,08H ;12,11度正弦值 DB 17H,36H,15H,64H ;10,9度正弦值 DB 13H,92H,12H,19H ;8,7度正弦值 DB 10H,45H,08H,72H ;6,5度正弦值 DB 06H,97H,05H,23H ;4,3度正弦值 DB 03H,49H,01H,75H ;2,1度正弦值 DB 00H,00H ;0度正弦值DATA ENDSSTACK1 SEGMENT DB

26、100H DUP(?) STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA MOV DS,AX MOV AX,STACK1 MOV SS,AX MOV AX,0010H ;设置屏幕的显示方式 INT 10H ST0: MOV AH,0H ;程序的初始化清零 MOV INPUTS,AH MOV INPUTS+1,AH MOV INPUTS+2,AH MOV AX,0H MOV BX,0H MOV SI,0H ;设置初始欢迎界面的字符颜色,并输出ST1: MOV AL,MSG1+SI MOV BL,0

27、1H ;字体颜色 MOV AH,0EH INT 10H INC SI CMP SI,1DH JZ SHURU JMP ST1 SHURU: MOV AL,0E0H ;显示“a”字样,提示用户输入角度 MOV BL,0dH MOV AH,0EH INT 10H MOV AL,03DH MOV BL,0dH MOV AH,0EH INT 10H CALL INPUT ;否则开始用户输入过程 MOV AX,DIZHI CMP AX,05AH ;判断输入值的范围 JBE CHA1 CMP AX,0B4H JBE CHA2 CMP AX,10EH JBE CHA3 CMP AX,168H JBE CHA

28、4 JMP ERRR CHA1: MOV BX,5AH XCHG AX,BX SUB AX,BX ;090度范围情况 MOV CX,2H MUL CL MOV BX,AX MOV AH,TAB+BX MOV AL,TAB+BX+1 MOV RESULT,AH MOV RESULT+1,AL JMP XIANSHI CHA2: MOV BX,0B4H ;91180度范围情况 XCHG AX,BX SUB AX,5AH MOV CX,2H MUL CL MOV BX,AX MOV AH,TAB+BX MOV AL,TAB+BX+1 MOV RESULT,AH MOV RESULT+1,AL JMP

29、 XIANSHI CHA3: SUB AX,0B4H ;181270度范围情况 MOV BX,5AH XCHG AX,BX SUB AX,BX MOV CX,2H MUL CL MOV BX,AX MOV AH,TAB+BX MOV AL,TAB+BX+1 MOV RESULT,AH MOV RESULT+1,AL JMP XIANSHI2CHA4: MOV BX,168H ;270360度范围情况 XCHG AX,BX SUB AX,BX XCHG AX,BX SUB AX,5AH MOV CX,2H MUL CL MOV BX,AX MOV AH,TAB+BX MOV AL,TAB+BX+

30、1 MOV RESULT,AH MOV RESULT+1,AL JMP XIANSHI2 ERRR: MOV DX,OFFSET CUOWU1 ;输入范围有误或输入内容不为数字的提示处理 CALL ODS MOV DX,OFFSET CUOWU2 CALL ODS MOV DX,OFFSET TISHI CALL ODS JMP SHURU XIANSHI:CALL CHANGE MOV DX,OFFSET OUT1 ;最终结果显示 CALL ODS MOV DX,OFFSET FINAL CALL ODS MOV DX,OFFSET TISHI CALL ODS JMP ST0XIANSHI

31、2:CALL CHANGE MOV DX,OFFSET OUT2 CALL ODS MOV DX,OFFSET FINAL CALL ODS MOV DX,OFFSET TISHI CALL ODS JMP ST0 INPUT PROC NEAR ;输入子程序 MOV SI,0INPUT1:MOV AH,01H ;用户输入过程 INT 21H CMP SI,0H JZ YZX JMP YZX1YZX: CMP AL,0DH JZ ERRRYZX1: CMP AL,0DH JZ INPUT2 CMP AL,q ;按q或Q则退出 JZ EXIT CMP AL,Q JZ EXIT CMP AL,30

32、H ;初步判断用户输入合法性 JB ERRR CMP AL,39H JA ERRR MOV INPUTS+SI,AL INC SI CMP SI,3 JZ INPUT2 JMP INPUT1 INPUT2:CALL CALRET INPUT ENDP CAL PROC NEAR ;用户输入ASCII码的计算子程序 MOV AX,0 MOV AL,INPUTS+2 CMP AL,0 JZ FANGFA2 MOV AL,INPUTS ;当输入为三位数时的输入数据处理方法 SUB AL,30H MOV BL,64H MUL BL MOV DIZHI,AX MOV AL,INPUTS+1 SUB AL

33、,30H MOV BL,0AH MUL BL ADD DIZHI,AX MOV AL,INPUTS+2 MOV AH,0 SUB AL,30H ADD DIZHI,AX JMP CALEND FANGFA2:MOV AX,0 MOV AL,INPUTS+1 CMP AL,0 JZ FANGFA1 MOV AL,INPUTS ;当输入为两位数时的输入数据处理方法 SUB AL,30H MOV BL,0AH MUL BL MOV DIZHI,AX MOV AL,INPUTS+1 SUB AL,30H ADD DIZHI,AX JMP CALENDFANGFA1: MOV BX,0 ;当输入为一位数

34、时的输入数据处理方法 MOV BL,INPUTS SUB BL,30H MOV DIZHI,BX CALEND:RETCAL ENDP ODS PROC NEAR ;结果显示子程序 MOV AH,09H INT 21HRET ODS ENDPCHANGE PROC NEAR ;最终结果转化子程序 MOV SI,0 MOV DI,0CHANGE1:MOV AX,0H MOV AL,RESULT+SI MOV BL,10H DIV BL ADD AH,30H ADD AL,30H MOV FINAL+DI,AL MOV FINAL+DI+1,AH INC SI ADD DI,2 CMP SI,2

35、JZ CHANGE2 JMP CHANGE1 CHANGE2:RETCHANGE ENDPEXIT: ;程序退出点 MOV AH,4CH INT 21HCODE ENDS END START5 程序调试程序编写完毕后,便开始进行程序调试部分。本次调试采用了先分块调试在综合调试的步骤。首先是显示部分的调试,在显示部分调试时,没有出现错误,调试的重点在于显示方式选择和字体颜色的选择上,尽量在有限的选择范围内达到可视性好,色彩明快的要求。最终选定了蓝色和紫红色搭配的配色方案。接下来调试的是输入子程序和输入数据初步处理子程序。因为此次程序设计是个人进行的第一次较大规模程序编写,所以在细节考虑上出现了一些漏洞,最初的程序只能对正确数据进行处理,但是不能对非法输入进行报错处理,在调试的过程中又逐步的将相应程序添加了进去。在调试角度分类部分时,总是不能实现规定的功能。出现的问题是:到了相应的跳转语句,不能按照设想的情况跳转。开始我认为是跳转语句使用错误,在更换

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922