求课程设计:题目:数学游戏

正好我最近要做这个报道,就把我的分享给你,呵呵(对了,你不是舒什康吧?用户名很熟悉)

经过测试,运行正常,但不要说不正常~ ~ ~

下面是代码,别说不会~ ~直接复制,改后缀。ASM编译连接正常。

EQU字节指针

EQU单词PTR

EQU德沃德有限公司

代码段

假设CS:CODE,DS:CODE

ORG 100H

;主程序开始

新闻之星:

JMP明星报

甚至

NUM1 DW 0,0

NUM2 DW 0,0

NUM3 DW 0,0

JGV4 DW 0,0

YSF标签词

YSF1分贝0

YSF2 DB 0

JUV DB 0

UV DB 0

;让DS:SI指向第一个有效字符。

附近的OVERS标签

CLD

推斧

OVERS1:

LODSB

CMP AL,' '

JZ OVERS1

化学机械抛光铝,9

JZ OVERS1

十二月四日

CMP AL,13

爆破筒

浸水使柔软

;输出一个选项卡。

标签标签附近

MOV·阿尔,9岁

JMP肖特DISP

;输出回车换行符。

CRLF标签附近

MOV艾尔,13

打电话给DISP

MOV艾尔,10

;显示一个字符

DISP标签附近

推斧

推送DX

MOV啊,2

MOV有限公司

INT 21H

流行DX

爆破筒

浸水使柔软

;检查是否是操作员。

ISYSF标签附近

CLD

LODSB

打电话给ISJJ

JZ ISYSF1

呼叫ISII

JZ ISYSF1

十二月四日

ISYSF1:

浸水使柔软

;检查是否是加减运算。

ISJJ标签在附近

CMP AL,'+'

JZ ISYSF1

CMP AL,'-'

浸水使柔软

;检查是否是乘除运算。

ISII标签附近

CMP AL,' * '

JZ ISYSF1

CMP AL,'/'

JZ ISYSF1

CMP AL,' \ '

浸水使柔软

;数据输出

;CX=10十进制

;CX=16十六进制

DOUT标签在附近

推斧

推BX

推送DX

推送BP

异或BP,BP

DOUT1:

公司BP

推斧

MOV AX,DX

XOR DX,DX

CX分部

MOV·BX,斧头

爆破筒

CX分部

推送DX

BX MOV DX

或者BX,斧头

JNZ DOUT1

DOUT2:

爆破筒

添加AL,' 0 '

CMP AL,' 9 '

JBE·杜特3

添加AL,' A'-'9'-1

DOUT3:

打电话给DISP

十二月BP

JNZ DOUT2

流行血压

流行DX

波普·BX

爆破筒

浸水使柔软

;输入数据在DX:AX中返回。

;CX=0数据是10。

;CX#0数据是16十六进制数。

附近的日期标签

推BX

推送BP

推DI

异或AX,AX

XOR DX,DX

日期1:

MOV·迪·阿克斯

LODSB

CMP AL,' 0 '

JB日期7

CMP AL,' 9 '

JA日期6

日期2:

还有AX,0FH

SHL DI,1

RCL DX,1

迪MOV·BX

MOV BP,DX

SHL DI,1

RCL DX,1

SHL DI,1

RCL DX,1

JCXZ日期3

SHL DI,1

RCL DX,1

Jmp短日期4

日期3:

加迪·BX

ADC DX,BP

日期4:

添加AX,DI

ADC DX,0

JMP日期1

日期5:

添加AL,9

JMP日期2

日期6:

JCXZ日期7

CMP AL,' A '

JB日期7

CMP AL,' F '

JBE日期5

CMP AL,' a '

JB日期7

CMP AL,' f '

JBE日期5

日期7:

MOV阿克斯山口

十二月四日

或者DI,DX

波普迪

流行血压

波普·BX

浸水使柔软

;数据1和数据2根据YSF1加减。

JSJJ标签附近

MOV斧,NUM2

MOV DX,NUM2+2

CMP YSF1,'+'

JZ JSJJ1

子NUM1,AX

SBB NUM1+2,DX

JMP短JSJJ2

JSJJ1:

添加NUM1,AX

模数转换器NUM1+2,DX

JSJJ2:

浸水使柔软

;数据1和数据2按照YSF1进行乘法和除法运算。

JSII1标签附近

MOV BX,偏移量NUM1

JMP短JSII2_1

;数据2和数据3根据YSF2进行乘法和除法运算。

JSII2标签附近

MOV BX,偏移量NUM2

JSII2_1:

DB 66H

MOV斧,[BX]

DB 66H

MOV·CX,[BX+4]

CMP YSF2,' * '

JNZ JSII2_2

DB 66H

伊穆尔·CX

JMP短JSII2_3

JSII2_2:

DB 66H

CWD

DB 66H

IDIV·CX

CMP YSF2,'/'

JZ JSII2_3

DB 66H

XCHG DX,AX

JSII2_3:

DB 66H

MOV [BX],斧头

浸水使柔软

;显示结果

附近的XUJG标签

MOV AX,JGV4

MOV DX,JGV4+2

MOV CX,10

CMP UV,10

JZ XUJG0

MOV CX,16

XUJG0:

测试DX,8000小时

JZ XUJG1

CMP UV,10

JZ XUJG2

打电话给DOUT

XUJG2:

不是斧头

不是DX

添加AX,1

ADC DX,0

推斧

CMP UV,10

JZ XUJG3

MOV·艾尔

打电话给DISP

MOV·艾尔,‘(’

打电话给DISP

XUJG3:

“MOV·艾尔,”——”

打电话给DISP

爆破筒

CMP UV,10

JZ XUJG1

打电话给DOUT

MOV·艾尔,“)”

打电话给DISP

浸水使柔软

XUJG1:

打电话给DOUT

浸水使柔软

;计算结果放入DX:AX。

JSJG标签附近

打电话给JSJJ

MOV AX,NUM1

MOV DX,NUM1+2

浸水使柔软

;从DS:SI中取一个数据。

附近的装载标签

LODSB

CMP AL,'('

JZ负载1

十二月四日

推CX

CX XOR CX

CMP UV,10

JZ加载0

CX公司;取16的十六进制数。

LOADATE0:

通话日期;取数据放入DX:AX。

波普·CX

浸水使柔软

LOADATE1:

推送num 1;保存数据1,数据2和运算符。

推送NUM1+2

推送NUM2

按NUM2+2

推YSF

INC JUV

MOV JGV4,0;结果值被清除

MOV JGV4+2,0

;执行四则运算

附近的SZYS标签

调用ISYSF第一个字符是运算符吗?

JZ SZYS2

调用LOADATE不,取来保存。

MOV NUM1,AX

MOV NUM1+2,DX

SZYS1:

异或AX,AX;数据2清除

MOV NUM2,AX

MOV NUM2+2,AX

调用ISYSF接下来是接线员?

JZ SZYS3

JNZ SZYS6

SZYS2:

推斧

MOV AX,JGV4取结果为数据1。

MOV NUM1,AX

MOV AX,JGV4+2

MOV NUM1+2,AX

爆破筒

SZYS3:

MOV YSF1,铝

MOV YSF2,铝

叫ISJJ是加减法。

JZ SZYS4

调用LOADATE获取数据2

MOV NUM2,AX

MOV NUM2+2,DX

调用jsii 1;数据1和数据2按照YSF1进行乘法和除法运算。

JMP szys 1;结果保存在数据1中。

SZYS4:

调用LOADATE获取数据2并保存。

MOV NUM2,AX

MOV NUM2+2,DX

SZYS4_1:

呼叫ISYSF

JNZ SZYS6

叫ISJJ运算符2是加减法?

JNZ SZYS5不转弯

推斧

叫JSJJ数据1和数据2根据YSF1加减。

POP AX结果保存在数据1中。

MOV YSF1,AL;保存新操作员

JMP SZYS4

SZYS5:

MOV YSF2,铝;保存操作员2

调用LOADATE获取数据3

MOV NUM3,AX

MOV NUM3+2,DX

调用JSII2数据2和数据3根据YSF2进行乘法和除法运算。

JMP szys 4 _ 1;结果保存在数据2中。

SZYS6:

MOV有限公司

CMP AL,13

JNZ SZYS9

SZYS7:

呼叫JSJG

CMP JUV,0

JZ SZYS8

十二月十六日

波普·YSF

POP NUM2+2

POP数字2

POP NUM1+2

POP NUM1

浸水使柔软

SZYS8:

CMP CL,')'

JZ深圳10

MOV JGV4,AX

MOV JGV4+2,DX

JNZ SZYS12

SZYS9:

CMP AL,')'

JNZ SZYS11

公司SI

JMP SZYS7

SZYS10:

MOV NUM1,AX

MOV NUM1+2,DX

JMP SZYS1

SZYS11:

卫星追踪委员会(Satellite Tracking Committee)

浸水使柔软

SZYS12:

CanadianLabourCongress加拿大劳工大会

浸水使柔软

;数字系统处理

附近的紫外线标签

推送SI

UVIL1:

LODSB

CMP AL,' '

JZ紫外线2

化学机械抛光铝,9

JZ紫外线2

CMP AL,13

JZ·乌维尔

JNZ UVIL1

UVIL2:

MOV·BX,SI

通话结束

JZ紫外线3

LODSW

通话结束

波普斯

JNZ SZYS11

CMP AX,' 01 '

JNZ SZYS11

推送SI

MOV紫外线,10

UVIL3:

MOV艾尔,13

MOV [BX-1],铝

UVIL4:

波普斯

CanadianLabourCongress加拿大劳工大会

浸水使柔软

;预设结果

YVJG标签附近

MOV啊,52H

INT 21H

MOV·埃克斯:[BX-2]

MOV DS,AX

MOV斧,DS:[0CH]

MOV CS:JGV4,AX

MOV斧,DS:[0EH]

MOV CS:JGV4+2,AX

推送CS

流行数码相机

推送CS

流行元素

浸水使柔软

;保存结果

BCJG标签附近

MOV啊,52H

INT 21H

MOV·埃克斯:[BX-2]

MOV DS,AX

MOV AX,CS:JGV4

MOV DS:[0CH],AX

MOV AX,CS:JGV4+2

MOV DS:[0EH],AX

推送CS

流行数码相机

推送CS

流行元素

浸水使柔软

明星:

MOV司,81H

CLD

通话结束

JNZ STAR1

STAR0:

MOV DX,OFFSET MESS1

JMP之星4

STAR1:

打电话给YVJG

打电话给尤维尔

JB STAR0

MOV·萨维思普公司

打电话给SZYS

MOV储蓄银行

MOV DX,偏移消息2

JB STAR4

打电话给CRLF

打电话给XUJG

呼叫BCJG

MOV DX,偏置消息3

STAR4:

MOV啊,9

INT 21H

INT 20H

存储服务数据0

MESS1 DB 13,10,'语法:',13,10

DB ' JS & lt表达式& gt[10]',13,10,'$'

表达式中的“MESS2 DB”错误!$'

MESS3 DB 13,10,' $ '

代码结束

结束新闻之星