汇编语言课程设计——计算器讲解_第1页
汇编语言课程设计——计算器讲解_第2页
汇编语言课程设计——计算器讲解_第3页
汇编语言课程设计——计算器讲解_第4页
汇编语言课程设计——计算器讲解_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、*实践教学*兰州理工大学技术工程学院2015年春季学期汇编语言实训课程设计题 目:计算器专业班级: 2013级软件工程(1)班姓 名:郭益婷 学 号: 13740104指导教师:刘树群成 绩:2015计算器任务书题目: 计算器学生姓名学号:杜政毅 13740102,惠攀龙13740108,郭益婷13740104班级:13软件工程1班题目类型:软件工程(R)指导教师:刘树群1、设计目的用汇编语言编程设计一个简单的计算器,实现四则运算数的交互式输入,并 显示运算结果。通过设计,掌握键盘和鼠标控制、显示输出和基本算术运算指令 的应用,进一步提高综合运用知识的能力。2、设计内容(包括原始数据、技术参数

2、、条件、设计要求等):使用按键式操作,对任意给定的正确四则运算序列,能按照意图分部计算出 其计算的有效结果数值并输出。3、设计要求题目的选择是根据汇编语言的特点主要针对系统内部的一些中断调用、 系统 功能调用、系统数据处理、文件数据处理、以及相关的API而设计的,是对所学 课程知识较为系统的应用。由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。 不要局限于题 目所规定的要求,可以灵活裁减,设计出功能更完善程序。另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设 计的题目。4、提交的成

3、果1.设计说明书一份,内容包括:包含任务书一份1)中文摘要100字,关键词3-5个。2)实训题目、内容、要求。3)总体设计(包含几大功能模块)。4)详细设计(各功能模块的具体实现算法一一流程图)5)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。6)调试分析(包含各模块的测试用例,及测试结果。)7)总结(实训完成了哪些功能,还有哪些地方需要改进,及通过实训有何收获,调试程序的体会等)8)参考文献、致谢等。5、主要参考资料1李敬兆等编.汇编语言程序设计.合肥:中国科学技术大学出版社,2008.92李敬兆等编.汇编语言程序设计实验教程及习题解答.合肥:中国科学技 术大学出版社,2008.9

4、3王爽等编.汇编语言.北京:清华大学出版社,2003.54曹加恒等编.新一代汇编语言课程设计.北京:高等教育出版社,2003.65杨路明等编.汇编语言程序设计.长沙:中南大学出版社,2005.8 6詹仕 华等编.汇编语言程序设计.北京:中国电力出版社,2008.2 詹仕华等编.汇编语言程序设计习题解答及课程设计、设计辅导.北京:中国电力出版社,2008.28宋彩莉等编.汇编语言程序设计学习指导.西安:西安交通大学出版社,2008.26、各阶段时间安排(共1周)日期内容地点星期一教师讲解设计要求,准备参考资料实验室星期二分析系统,方案设计实验室星期三方案设计,编程实验室星期四调试程序,书写实训说

5、明书实验室星期五完成实训说明书,答辩实验室摘要汇编语言是一种功能很强的程序设计语言, 也是利用计算器所有特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个 ”汇编器 ”来把汇编语言原文件会变成机器可执行的代码。高级汇编语言器如: MASM , TASM 等等为我们后来写汇编程序提供了很多类似高级语言的特征,比如结构化,抽象等。 在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。 现在的汇编环境已经如此高级, 即使全部用汇编语言来编写windows 的应用程序也是可行的,但这不是汇编语言的长处,回避啊预言的长处在于编写高效且需要

6、对机器硬件精确控制的程序。 本次设计简单计算器支持简单的四则运算。关键词:汇编语言,计算器,高效,硬件35汇编语言实训任务书 2摘要 4前言 61.1 系统分析 71.2 功能分析 72 系统总体设计 92.1 系统总体分析 92.2 主模块框图及说明 93 详细设计 113.1 主模块及子模块说明 113.2 各模块详细设计 114 系统测试 224.1 测试界面图 224.2 算法的分析 265 软件使用说明书 275.1 计算器功能说明 275.2 操作键功能说明 27设计总结 28参考文献 29致谢 30、乙前言运用汇编语言,制作一个计算的程序,实现简单计算器的一般功能,使用 Win3

7、2 编程设计一个功能及界面风格类似于 Windows 计算器的计算器程序, 只要求实现标准型计算器。主要实现的功能: 包含基本的四则运算、 倒数运算、 平方根运算。 支持存储区的存储、 清除、调出、累加等功能。程序主界面应有操作提示、输入和输出。输入数值及所需符号后可以进行正确的运算, 程序计算其结果值并输出。 表达式中运算分量为有正负号整数, 运算符为 + 、-、 * 、 /,最后结果以十进制数表示。且程序主界面需为一个由仿windws 界面。 汇编语言直接同计算机的底层软件甚至硬件进行交互, 它具有如下一些优点: 能够直接访问与硬件相关的存储器或I/O 端口;能够不受编译器的限制,对生成的

8、二进制代码进行完全的控制;能够对关键代码进行更准确的控制; 能够根据特定的应用对代码做最佳的优化, 提高运行速度;能够最大限度地发挥硬件的功能。1总体分析1.1 系统分析该课程的设计任务是做一个简易计算器,可以实现加减乘除四则运算。我 们要解决的问题有:以什么方式输入数字、判断是进行什么运算、运算过程中的进位和借位问题、以及如何实现清屏等问题。本次设计的简单计算器,主要是为了解决数学中的加,减,乘,除,开方 的运算问题。由于在设计之中考虑到了可能会多次计算数据,为此在本次课程设计中我们设计的计算器可一次运行, 多次使用。本程序使用了函数和宏混用的方 式实现了代码的较好的可读性,使程序看起来结构

9、严谨。1.2 功能分析图1-1计算器显示区:文本框,用于显示输入的操作数及结果。数字键入区:在显示区中显示数字、小数点、正负号等。运算区:包含双目运算符(+ - * /)、单目运算符(sqrt()、%、1/x)、等于号 等。记忆区: 清除记忆 ( MC ) 、 显示记忆 ( MR) 、 记忆当前 ( MS) 、 记忆加 ( M+ ) 以及记忆区存储情况的标签。清除键区:退格(Backspace) 、清除当前数据(CE) 、初始化操作(C) 。2 系统总体设计2.1 系统总体分析本次设计的计算器,主要是为了解决数学中的加、减、乘、除、开方运算的问题。 由于在设计过程中考虑到了可能会多次计算数据,

10、 为此本次课程设计我设计的这个简单计算器可以一次运行,多次使用。根据题目, 可以把程序的工作过程主要划分为界面设计、运算表达式输入、计算、结果输出四部分。因此在编写程序时可以按此把程序大致划分为四个模块。第一步,界面设计,使用汇编语言设计一个界面风格及功能类似于 Windows 计算器程序,实现标准型、可靠性、简单性、易学性、实用性的界面。第二步,运算表达式的输入,对于输入,键盘、鼠标都可进行输入操作。第三步,计算,通过汇编语言使计算器实现四则运算、倒数运算、平方根运算等计算。第四步,对于输出,必须能在显示区显示正确的结果。2.2 主模块框图及说明主程序及窗口主程序结构如图 2-1, 按照 W

11、indows 程序标准框架, 主程序用于获得并保存本程序的句柄,并调用窗口主程序WinMain 创建窗口并进入消息循环。WinMain程序将获取的消息分发给消息处理程序Calculate进行处理。Ge tM o 也11 eHan dl e获取本应用程序句柄hlnstaiice调用窗口主程序WinMain退出程序Exi tProcess:结日图2-1主模块框图窗口主程序- WinMain,F册遢口衍R6展i sterClaEsE*Showlffindow更等窗口Upd*t电卅indoaGertMe:写三4苦色退出消息?转换佳盘消息TranslateMassage-分?消息Di £pat

12、ehH电宝sag电消息处理程序Calculate3 详细设计3.1 主模块及子模块说明主模块:主要完成程序的主体框架结构,提供人-程序的交互。子模块:主要完成对数据的加工处理。3.2 各模块详细设计程序源文件包含两个部分:头文件 ( Calculator.inc) : 头文件中引入程序所需要的库以及常量和函数申明源文件(Calculator.asm) :汇编程序源代码(1) 在 Calculator.inc 头文件中统一定义程序所需的头文件及引入库(代码如下); 头文件声明 include masm32includewindows.incinclude user32.incinclude ke

13、rnel32.incinclude comctl32.inc;includemasm32includecomdlg32.inc;includemasm32includegdi32.incinclude masm32.incinclude shell32.inc; 引入库声明 includelib user32.libincludelib kernel32.libincludelib comctl32.libincludelib masm32.libincludelib shell32.lib;includelib masm32libgdi32.lib;includelib masm32libc

14、omdlg32.lib(2)WinMain 主程序用于创建窗口并获取和分发消息(代码如下)WinMain proc hInst:DWORD, hPrevInst:DWORD, CmdLine:DWORD, CmdShow:DWORDLOCAL wc:WNDCLASSEX; 窗口类LOCAL msg:MSG; 消息LOCAL hWnd:HWNDMovwc.cbSize,sizeof WNDCLASSEXmov wc.style,CS_BYTEALIGNWINDOWCS_HREDRAW or CS_VREDRAWmov wc.lpfnWndProc,OFFSET Calculatemov wc.c

15、bClsExtra,0mov wc.cbWndExtra,DLGWINDOWEXTRA ;对话框句柄;WNDCLASSEX 的大小or CS_BYTEALIGNWINDOW ; 窗 口 风 格 or; 窗口消息处理函数地址; 在窗口类结构后的附加字节数,共享内存在窗口实例后的附加字节数(!注意点)mov eax,hInstmov wc.hInstance,eax; 窗口所属程序句柄mov wc.hbrBackground,COLOR_BTNFACE+1;背景画刷句柄mov wc.lpszMenuName,NULL;菜单名称指针mov wc.lpszClassName,OFFSET Dialog

16、Name ;类名称指针invoke LoadIcon,hInst,addr IconName ;加载 Iconmov wc.hIcon,eax; 图标句柄invoke LoadCursor,NULL,IDC_ARROWmov wc.hCursor,eax; 光标句柄mov wc.hIconSm,0; 窗口小图标句柄invoke RegisterClassEx,addr wc;注册窗口类invoke CreateDialogParam,hInst,addr DialogName,0,addr Calculate,0 ; 调用对话框窗口mov hWnd,eax;保存对话框句柄invoke Show

17、Window,hWnd,CmdShow; 最后一个参数可设置为 SW_SHOWNORMALinvoke UpdateWindow,hWnd;更新窗口StartLoop:; 消息循环invoke GetMessage,addr msg,0,0,0;获取消息cmp eax,0je ExitLoopinvoke TranslateMessage,addr msg;转换键盘消息invoke DispatchMessage,addr msg;分发消息jmp StartLoopExitLoop:;结束消息循环mov eax,msg.wParamretWinMain endp(3) 消息处理程序用于处理用户

18、消息(代码如下) 。Calculate proc hWin:DWORD,uMsg:UINT,aParam:DWORD,bParam:DWORDLOCAL pt:POINT.if uMsg = WM_INITDIALOGinvoke GetDlgItem,hWin,ID_RESULT;获取输出文本框句柄mov hEdit,eax;保存文本框句柄invoke GetDlgItem,hWin,ID_M;获取记忆标签句柄mov hTextM,eax;保存记忆标签句柄invoke LoadIcon,hInstance,addr IconName ;载入 Iconmov hIcon,eax;保存 Icon

19、 句柄nvoke SendMessage,hWin,WM_SETICON,ICON_SMALL ,eaxinvoke LoadMenu,hInstance,addr MenuName;加载菜单mov hMenu,eax; 保存菜单句柄invoke SetMenu,hWin,eaxinvokeCheckMenuRadioItem,hMenu,ID_STANDARD,ID_SCIENCE,ID_STANDARD,MF_BYCOMMAND ; 选 中标准型invoke SendMessage,hEdit,WM_SETTEXT,0,addr Output ; 显示 "0.".els

20、eif uMsg = WM_SIZE.if aParam=SIZE_MINIMIZED;最小化mov NotifyIcon.cbSize,sizeof NOTIFYICONDATApush hWinpop NotifyIcon.hwndmov NotifyIcon.uID,ID_NOTIFYICONmov NotifyIcon.uFlags,NIF_ICON+NIF_MESSAGE+NIF_TIPmov NotifyIcon.uCallbackMessage,WM_SHELLNOTIFYmov eax,hIconmov NotifyIcon.hIcon,eaxinvoke lstrcpy,ad

21、dr NotifyIcon.szTip,addr ProgramNameinvoke ShowWindow,hWin,SW_HIDE;隐藏窗口;invoke Shell_NotifyIcon,NIM_ADD,addr NotifyIcon.endif.elseif uMsg = WM_SHELLNOTIFY.if aParam=ID_NOTIFYICON.if (bParam=WM_LBUTTONDOWN);单击通知栏图标invoke ShowWindow,hWin,SW_SHOW ;显示窗口invoke Shell_NotifyIcon,NIM_DELETE,addr NotifyIcon

22、; 删除通知栏图标.elseif (bParam=WM_RBUTTONDOWN);右键通知栏图标invoke GetCursorPos,addr ptinvoke GetSubMenu,hMenu,3invokeTrackPopupMenu,eax,TPM_LEFTALIGN,pt.x,pt.y,NULL,hWin,NULL.endif.endif.elseif uMsg = WM_CHAR; 热键操作mov eax,aParamsub eax,'0'add eax,ID_NUM0.if (eax>=ID_NUM0) && (eax<=ID_NUM9

23、);数字按钮invoke Calculate,hWin,WM_COMMAND,eax,0.elseif (eax=0ffh);ID_COPYinvoke Calculate,hWin,WM_COMMAND,ID_COPY ,0.elseif (eax=112h);ID_PASTEinvoke Calculate,hWin,WM_COMMAND,ID_PASTE,0.elseif (eax=104h);ID_BACKinvoke Calculate,hWin,WM_COMMAND,ID_BACK,0;ID_EQU.elseif (eax=265) invoke Calculate,hWin,WM

24、_COMMAND,ID_EQU,0.elseif (eax=298);ID_POINTinvoke Calculate,hWin,WM_COMMAND,ID_POINT,0.elseif(eax=295);ID_ADDinvoke Calculate,hWin,WM_COMMAND,ID_ADD,0.elseif (eax=297);ID_SUBinvoke Calculate,hWin,WM_COMMAND,ID_SUB,0.elseif (eax=294);ID_MULinvoke Calculate,hWin,WM_COMMAND,ID_MUL,0.elseif (eax=299);ID

25、_DIVinvoke Calculate,hWin,WM_COMMAND,ID_DIV ,0.endif.elseif uMsg = WM_COMMANDmov eax,aParam.if eax = ID_CE;清零按钮 CElea esi,Outputmov BYTE PTResi,'0'mov BYTE PTResi+1,'.'mov BYTE PTResi+2,0.if IsError=1invoke Init.endifinvoke SendMessage,hEdit,WM_SETTEXT,0,addr Output.elseif eax = ID_C

26、;初始化按钮CinvokeCalculate,hWin,WM_COMMAND,ID_CE,bParaminvoke Init.elseifIsError=1ret.elseif eax =ID_BACK;退格按钮 Backspaceinvoke UnpackNum.if IsStart=0 lea esi,Output.while BYTE PTResi!=0inc esi.endw.if BYTE PTResi-1='.'.if HasPoint=1mov HasPoint,0.else.if BYTE PTResi-3='-'lea esi,Outputmo

27、v BYTE PTResi,'0'mov BYTE PTResi+1,'.'mov BYTE PTResi+2,0.elsemov BYTE PTResi-2,'.'mov BYTE PTResi-1,0.endif.endif.elsemov BYTE PTResi-1,0.endiflea esi,Output.if BYTE PTResi='.'mov BYTE PTResi,'0'mov BYTE PTResi+1,'.'mov BYTE PTResi+2,0.endifinvoke Sho

28、wNum; 数字按钮.endif.elseif (eax >= ID_NUM0) && (eax <= ID_NUM9).if HasEqueal=1invoke Init.endifinvoke BtnNum,eax.elseif eax = ID_POINTmov BYTE PTR HasPoint,1mov BYTE PTR IsStart,0.elseif eax = ID_NEGinvoke UnpackNuminvoke StrToFloat,addr Output, addr Numberfinitfldzfld Numberfsubfstp Numb

29、erinvoke FloatToStr2,Number,addr Outputinvoke ShowNum.elseif (eax >= ID_MUL) && (eax <= ID_ADD)invoke BtnOperator.elseif eax = ID_EQUinvoke BtnEqual.elseif eax = ID_PERmov Operator,'*'invoke GetResultinvoke UnpackNuminvoke StrToFloat,addr Output, addr Numberfinitfld Numberfld N

30、um100fdivfstp Number;正负号按钮;小数点按钮; 双目运算符按钮; 百分号按钮;等于按钮invoke FloatToStr2,Number,addr Output invoke ShowNum.elseif eax = ID_DAO; 倒数按钮invoke UnpackNuminvoke StrToFloat,addr Output, addr Numberfinitfld Numberfldzfcomi ST(0),ST(1)jnz NotZeromov IsError,1invoke SendMessage,hEdit,WM_SETTEXT,0,addr Div0retN

31、otZero:fstp Numberfstp Numberfld1fld Numberfdiv.if HasEqueal=1fst Result.endiffstp Numberinvoke FloatToStr2,Number,addr Outputinvoke ShowNum.elseif eax = ID_SQRT;开方按钮invoke UnpackNuminvoke StrToFloat,addr Output, addr Numberfinitfld Numberfldzfcomi ST(0),ST(1)jb Positivemov IsError,1invoke SendMessa

32、ge,hEdit,WM_SETTEXT,0,addr FunctionErrorretPositive:fstp Numberfsqrt.if HasEqueal=1fst Result.endiffstp Numberinvoke FloatToStr2,Number,addr Outputinvoke ShowNum.elseif eax = ID_MC;MC 按钮fldzfstp Rememberinvoke SendMessage,hTextM,WM_SETTEXT,0,NULL.elseif eax = ID_MR;MR 按钮invoke FloatToStr2,Remember,a

33、ddr Outputinvoke ShowNummov IsStart,0.elseif eax = ID_MS;MS 按钮invoke UnpackNuminvoke StrToFloat,addr Output, addr Rememberinvoke ShowTextM.elseif eax = ID_MPLUS;M+ 按钮finitfld Rememberinvoke UnpackNuminvoke StrToFloat,addr Output, addr Rememberfld Rememberfaddfstp Rememberinvoke ShowTextM.elseif eax

34、= ID_COPYinvoke GlobalAlloc,GMEM_MOVEABLE,35mov hGlobal ,eaxinvoke GlobalLock,hGlobalmov pGlobal ,eaxlea esi,Outputmov edi,pGlobalmov ecx,35rep movsbinvoke GlobalUnlock,hGlobalinvoke OpenClipboard, NULLinvoke EmptyClipboardinvoke SetClipboardData,CF_TEXT,hGlobalinvoke CloseClipboard.elseif eax = ID_

35、PASTEinvoke IsClipboardFormatAvailable,CF_TEXT ;invoke OpenClipboard,NULLinvoke GetClipboardData,CF_TEXTmov hGlobal,eaxinvoke GlobalLock ,hGlobalmov pGlobal,eaxmov ecx,35lea edi,Outputmov esi,eaxrep movsbinvoke GlobalUnlock ,hGlobalinvoke CloseClipboardinvoke ShowNum.elseif eax = ID_PACKET; 复制; 配置一个

36、内存块;锁定内存块; 复制字符串; 解锁内存块; 打开剪切板;清空剪切板; 把内存句柄交给剪贴簿;关闭剪切板; 粘贴确定剪贴簿是否含有CF_TEXT 格式的数据; 打开剪切板; 得到代表文字的内存块代号; 解锁内存块; 复制字符串; 解锁内存块;关闭剪切板; 数字分组.if IsPacket=0 invoke CheckMenuItem,hMenu,ID_PACKET,MF_CHECKED ; 选中数字分组 .elseinvoke CheckMenuItem,hMenu,ID_PACKET,MF_UNCHECKED ; 选中数字分组 .endif xor IsPacket,1invoke Sh

37、owNum.elseif eax = ID_HELP;帮助invoke WinHelp,hWin,addr HelpFile,HELP_CONTENTS,1.elseif eax = ID_ABOUT;关于;invoke ShellAbout,hWin,addr ProgramName,addr Author,hIcon.elseif eax = ID_EXIT;关闭invoke Calculate,hWin,WM_CLOSE,aParam,bParam.endif.elseif uMsg = WM_CLOSEinvoke Shell_NotifyIcon,NIM_DELETE,addr No

38、tifyIconinvoke EndDialog,hWin,NULLinvoke PostQuitMessage,0;退出消息循环.elseinvoke DefWindowProc,hWin,uMsg,aParam,bParamret.endifinvoke SetFocus,hWinxor eax,eax; 关于 WM_KEYDOWN 原因retCalculate endp4系统测试4.1测试界面图1.窗口检测,看其热键按钮等功能是否能正常使用。具测试如图4-1所示:图4-1窗口测试2.四则运算测试。进行数据输入,对结果进行分析。(1)加法运算,计算2211.045+1000 如图4-2所示

39、:2211.045MCMR廖计算器一旧 置看(V)那助(H)1000.磨( 计算器匚“百编辑 查看M 那助(H)(2)减算运算,计算170-50,如图4-3所示:图4-2加法运算图4-3 减法运算(3)乘法运算,计算100*999,如图4-4所示:(4)除法运算,计算888/222,如图4-5所示:图4-4乘法运算(5)开方运算,计算625开方,如图图4-5 除法运算4-6所示:图4-6开放运算(6)倒数运算,计算1000的倒数,如图4-7所示:图4-7倒数运算4.2 算法的分析本程序使用了宏和函数的调用, 这样做使整个程序看起来严谨,舒展。本程序文件分别定义了对话框,菜单和 Icon 图标等

40、资源,为了在程序中方便对消息的处理,有意连续定义了 ID_NUM0ID_NUM9。在Calculator.inc头文件中统一 定义程序所需的头文件及引入库。在Calculator.inc 中定义程序所需常量。在Calculator.inc声明了自定义函数的原型。PackNum 函数将输出数据的字符串 Output 进行数字分组。它首先获取小数点以前的数字位数并保存在寄存器eax中,然后将(eax-1)/3即为需要添加的字符数目,并保存在eax中,对于小数点以后的字符都向后移动eax位,对于小数点以前的字符,向后移动eax位并用ecx计数,当ecx计数到3是添加字符, 并将ecx设为1且eax减

41、一,重复上述步骤直到eax等于0。UnpackNum 函数将进行数字分组输出的字符串 Output 解分组。它首先获取Output地址存在esi中,然后ecx赋0,并将Output中字符向前移动ecx个单位, 遇见, 字符则将ecx 加 1,直到字符串结束。ShowNum 函数将 Output 字符串处理后在文本框中显示出来。它首先调用UnpackNum函数对Output解分组,然后获取 Output地址存在esi、edi中,通过 循环将Output尾地址存在esi中,将字符.地址存在edi中,如果edi等于esi 则表明Output中无字符.,则在结尾添加字符.。如果IsPacked等于1则

42、对 Output 调用 UnpackNum 函数对其分组, 最后向文本框发送WM_SETTEXT 消息显示数据。BtnNum 函数响应数字按钮消息,向文本框中添加字符。BtnOperator 函数响应运算符按钮消息,进行运算并输出结果。首先判断是否为等号,如果不是则调用 GetResult 函数先进行一次运算,然后将当前操作符存入Operator变量中。BtnEqual 函数响应等号按钮消息,进行运算并输出结果。首先判断是否为起始状态,如果不是则调用 GetResult函数,并将HasEqual变量置1。BtnEqual 函数响应等号按钮消息,进行运算并输出结果。首先判断是否为起始状态,如果不是则调用 GetResult函数,并将HasEqual变量置1。ShowTextM函数判断Remember中的值是否为0,如果不是是则在标签中显 示 M ,否则清空标签中内容。5 软件使用说明书5.1 计算器功能说明显示区:文本框,用于显示输入的操作数及结果数字键入区:在显示区中显示数字、小数点、正负号等; 运算区:包含双目运算符( + - * / ) 、单目运算符( sqrt()、1/x ) 、等于号等记忆区:清除记忆(MC)、显示记忆(MR)、记忆当前(MS)、记忆加(M+)以及记忆区存储情况的标签清除键区:退格(Backspace) 、清除当前数据(CE ) 、初始化

温馨提示

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

评论

0/150

提交评论