十进制数加减计算器的设计Word文档格式.docx

上传人:b****2 文档编号:13762931 上传时间:2022-10-13 格式:DOCX 页数:10 大小:45.30KB
下载 相关 举报
十进制数加减计算器的设计Word文档格式.docx_第1页
第1页 / 共10页
十进制数加减计算器的设计Word文档格式.docx_第2页
第2页 / 共10页
十进制数加减计算器的设计Word文档格式.docx_第3页
第3页 / 共10页
十进制数加减计算器的设计Word文档格式.docx_第4页
第4页 / 共10页
十进制数加减计算器的设计Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

十进制数加减计算器的设计Word文档格式.docx

《十进制数加减计算器的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《十进制数加减计算器的设计Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

十进制数加减计算器的设计Word文档格式.docx

MOVAH,9;

显示字符串

INT21H;

DOS调用

----------------------------------

CLEARMACROCOLOR;

清屏

MOVAH,6;

屏幕初始化

MOVAL,0;

页号

MOVCH,0;

设置左上角的坐标为(0,0)

MOVCL,0

MOVDL,100;

设置右上角的坐标为(100,100)

MOVDH,100

MOVBH,COLOR;

卷入行属性

.MODELSMALL

.STACK

.DATA;

数据段定义

MSG0DB'

********************'

0DH,0AH;

0dh,0ah,0dh,0ah

DB'

**'

0DH,0AH

db'

**'

0dh,0ah

*--------COUNTER--------*'

*DATA1:

'

_______________*'

0dh,0ah,0dh,0ah,0dh

0DH

*DATA2:

*RESULT:

0DH,0AH,0DH;

0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dh

********************'

'

$'

MSG1DB'

choose+,-'

MSG2DB'

youchoosewrong'

0AH,0DH

MSG3DB'

PressESCtoExit!

0DH,0AH,'

MSG4DB'

Pressanykeytocontinue!

MSG5DB'

-'

MSG6DB'

.'

MSG7DB'

errorinput!

MSG8DB'

data2iswrong!

DATA1DW?

DATA2DW?

.CODE;

代码段从这里开始

--------------------------------------------

DEC_DIVPROCNEAR

CWD;

将字转换为双字,AX内容符号扩展到DX

DIVCX

PUSHDX

MOVDL,AL

ADDDL,30H;

将不是数字的字符转换为数字

显示输出

POPDX

MOVAX,DX

RET

DEC_DIVENDP

------------------------------------------

CHANGEPROCNEAR;

该子程序的功能:

将AX中存储的十六进制数转换为十进制数

CMPAX,1000

JAEC1;

AX≥1000则转移

CMPAX,100

JAEC2;

AX≥100则转移

CMPAX,10

JAEC3;

AX≥10则转移

JMPC4;

AX<10

C1:

MOVCX,1000D

CALLDEC_DIV

C2:

MOVCX,100D

C3:

MOVCX,10D

C4:

MOVCX,1D

CHANGEENDP

BEGINPROCNEAR

BACK:

CLEAR1EH

CURS2,20;

设置光标为(2.20)

DISPMSGMSG0;

显示用户界面

CURS8,41;

设置光标为(8,41),第一行

MOVBX,0

MOVCX,2

NEWCHAR1:

MOVAH,1;

键盘输入并回显

CMPAL,30H;

检查输入的字符是不是数字

JAEJ1;

如果不是,则转移至J1

JMPD2;

是,转移到D2执行

J1:

CMPAL,39H;

与9的ASCII侣氡

JBEJ2;

如果输入的字符是0-9,则转移至J2

JMPD2;

如果不是数字,则转移至D2

J2:

SUBAL,30H

CBW;

AL的内容符号扩展到AH

XCHGAX,BX

MOVDI,10

MULDI

ADDBX,AX

LOOPNEWCHAR1

MOVDATA1,BX

CURS11,41;

设置光标位为(11,40),第二行

NEWCHAR2:

与0的ASCII码比较

JAEJ3;

如果输入数字大于等于0则跳转至J3

JMPD2

J3:

与9比较

JBEJ4;

如果小于或等于9则跳转

如果输入不是数字则跳转

J4:

SUBAL,30H;

如果输入不是0-9,则转化成相应的字符

将AL符号扩展到AH

LOOPNEWCHAR2

MOVDATA2,BX

MOVAX,DATA1

MOVBX,DATA2

PUSHAX

PUSHBX

CURS15,33;

设置光标的位置为(15.33),第三行

DISPMSGMSG1;

显示提示信息

接受键盘输入并回显

CMPAL,'

+'

JEADDI;

如果运算符为+,则计算两数之和

JESUBT;

如果运算符为-,则计算两数之差

CURS16,25;

设置光标为(16,25)

DISPMSGMSG2;

在屏幕上输出提示信息

JMPD1

----------------------------------------

ADDTHETWODATAS

ADDI:

POPBX

POPAX

ADDAX,BX;

计算两数字之和

CURS14,41;

设置光标位置为(14,41)

CALLCHANGE;

将结果转换为十进制数

---------------------------------------

SUBTRACTTHETWODATAS

SUBT:

CMPAX,BX;

比较两数大小

JAED0;

如果AX>

=BX则跳转

CURS14,40;

设置光标位置为(14,40)

DISPMSGMSG5;

在屏幕上显示负号

D0:

SUBAX,BX;

计算两数之差

---------------------------------------

D1:

D2:

设置光标位置为(15,33)

DISPMSGMSG7;

提示输入出错

BEGINENDP

MAINPROCNEAR

MOVAX,@DATA

MOVDS,AX

MOVES,AX

PUSHDS

XORAX,AX

MOVDATA2,0;

将缓冲区清空

MOVDATA1,0

AGAIN:

CALLBEGIN

CURS16,23;

设置光标位置为(16.23)

DISPMSGMSG3;

在屏幕上输出提示信息,提示退出的方法

CURS17,23;

设置光标位置为(17.23)

DISPMSGMSG4;

在屏幕上输出提示信息,提示继续的方法

MOVAH,7;

键盘输入,无回显

CMPAL,27;

判断输入的是否为ESC

JNEAGAIN;

如果不是就继续执行以上运算

EXIT:

MOVAX,4C00H;

如果是就退出系统

MAINENDP

ENDMAIN

4.2对源程序汇编生成目标文件

4.3链接目标文件生成可执行文件“12.EXE”,并用D

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1