STACK
SEGMENT
STACK
DW
200
DUP
(?)
STACK
ENDS
DATA
SEGMENT
SPACE
DB
1000
DUP
('
')
PATTERN
DB
6
DUP
('
'),0C9H,26
DUP
(0CDH),0BBH,6
DUP
('
')
DB
6
DUP
('
'),0BAH,26
DUP
(20H),0BAH,6
DUP
('
')
DB
6
DUP
('
'),0C8H,26
DUP
(0CDH),0BCH,6
DUP
('
')
DBUFFER
DB
8
DUP
(':'),12
DUP
('
')
DBUFFER1
DB
20
DUP
('
')
STR
DB
0DH,0AH,
'PLEASE
INPUT
DATE(D)
OR
TIME(T)
OR
QUIT(Q):
$'
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
MOV
AX,0001H
设置显示方式为40*25彩色文本方式
INT
10H
MOV
AX,DATA
MOV
DS,AX
MOV
ES,AX
MOV
BP,OFFSET
SPACE
MOV
DX,0B00H
MOV
CX,1000
MOV
BX,0040H
MOV
AX,1300H
INT
10H
MOV
BP,OFFSET
PATTERN
显示矩形条
MOV
DX,0B00H
MOV
CX,120
MOV
BX,004EH
MOV
AX,1301H
INT
10H
LEA
DX,STR
显示提示信息
MOV
AH,9
INT
21H
MOV
AH,1
从键盘输入单个字符
INT
21H
CMP
AL,44H
AL='D'?
JNE
A
CALL
DATE
显示系统日期
A:
CMP
AL,54H
AL='T'?
JNE
B
CALL
TIME
显示系统时间
B:
CMP
AL,51H
AL='Q'?
JNE
START
MOV
AH,4CH
返回dos状态
INT
21H
DATE
PROC
NEAR
显示日期子程序
DISPLAY:MOV
AH,2AH
取日期
INT
21H
MOV
SI,0
MOV
AX,CX
MOV
BX,100
DIV
BL
MOV
BL,AH
CALL
BCDASC1
日期数值转换成相应的ASCII码字符
MOV
AL,BL
CALL
BCDASC1
INC
SI
MOV
AL,DH
CALL
BCDASC1
INC
SI
MOV
AL,DL
CALL
BCDASC1
MOV
BP,OFFSET
DBUFFER1
MOV
DX,0C0DH
MOV
CX,20
MOV
BX,004EH
MOV
AX,1301H
INT
10H
MOV
AH,02H
设置光标位置
MOV
DX,0300H
MOV
BH,0
INT
10H
MOV
BX,0018H
REPEA:
MOV
CX,0FFFFH
延时
DEC
BX
JNZ
REPEA
MOV
AH,01H
读键盘缓冲区字符到AL寄存器
INT
16H
JE
DISPLAY
JMP
START
MOV
AX,4C00H
INT
21H
RET
DATE
ENDP
TIME
PROC
NEAR
显示时间子程序
DISPLAY1:MOV
SI,0
MOV
BX,100
DIV
BL
MOV
AH,2CH
取时间
INT
21H
MOV
AL,CH
CALL
BCDASC
将时间数值转换成ASCII码字符
INC
SI
MOV
AL,CL
CALL
BCDASC
INC
SI
MOV
AL,DH
CALL
BCDASC
MOV
BP,OFFSET
DBUFFER
MOV
DX,0C0DH
MOV
CX,20
MOV
BX,004EH
MOV
AX,1301H
INT
10H
MOV
AH,02H
MOV
DX,0300H
MOV
BH,0
INT
10H
MOV
BX,0018H
RE:
MOV
CX,0FFFFH
REA:
LOOP
REA
DEC
BX
JNZ
RE
MOV
AH,01H
INT
16H
JE
DISPLAY1
JMP
START
MOV
AX,4C00H
INT
21H
RET
TIME
ENDP
BCDASC
PROC
NEAR
时间数值转换成ASCII码字符子程序
PUSH
BX
CBW
MOV
BL,10
DIV
BL
ADD
AL,'0'
MOV
DBUFFER[SI],AL
INC
SI
ADD
AH,'0'
MOV
DBUFFER[SI],AH
INC
SI
POP
BX
RET
BCDASC
ENDP
BCDASC1
PROC
NEAR
日期数值转换成ASCII码字符子程序
PUSH
BX
CBW
MOV
BL,10
DIV
BL
ADD
AL,'0'
MOV
DBUFFER1[SI],AL
INC
SI
ADD
AH,'0'
MOV
DBUFFER1[SI],AH
INC
SI
POP
BX
RET
BCDASC1
ENDP
CODE
ENDS
END
START
输入的五位数字,第一位为符号位,当符号位为0时为正数,否则为负数
后四位为参数计算的数字,输出结果同上
assume cs:codesg,ds:datasg,ss:stacksg
datasg segment
input1 db 'Input first number! ','$'
input2 db 'Input second number! ','$'
result db 'result is : ','$'
21号中断10号例程,存放输入数据
add1 db 6 缓冲区最大容量
db ? 实际上接收字符的个数,不包括最后的回车
db 6 dup (?) 存放输入的字符,回车结尾
add2 db 6
db ?
db 6 dup (?)
num dw ? 存放中间结果
sign db ? 两个数和的符号位
sum dw 10 dup (?) 两个数的和
datasg ends
stacksg segment
stacksg ends
codesg segment
start: mov ax,datasg
mov ds,ax
lea dx,input1
mov ah,9
int 21h
读取第一个加数
mov dx,offset add1
mov ah,10
int 21h
取光标位置,ah为行,al为列
mov ah,3
mov bh,0
int 10h
设置光标位置
mov ah,2
mov bh,0
inc dh
mov dl,0
int 10h
lea dx,input2
mov ah,9
int 21h
读取第二个加数
mov dx,offset add2
mov ah,10
int 21h
取光标位置,ah为行,al为列
mov ah,3
mov bh,0
int 10h
设置光标位置
mov ah,2
mov bh,0
inc dh
mov dl,0
int 10h
lea bx,add1
mov ax,[bx+1]
mov ah,0
dec ax 除去符号位,得到数字个数
push ax 压入字符数量
add bx,3
push bx 压入字符串首地址
call DeciToBina
lea bx,add1
mov dl,[bx+2] 取输入的数字的符号位
cmp dl,'0'
jz posi1
neg ax 符号位不为0,则表示负数,所以求补得到负数
posi1:
lea bx,num
mov [bx],ax 保存第一个数
lea bx,add2
mov ax,[bx+1]
mov ah,0
dec ax
push ax 压入字符数量
add bx,3
push bx 压入字符串首地址
call DeciToBina
lea bx,add2
mov dl,[bx+2]
cmp dl,'0'
jz posi2
neg ax
posi2:
lea bx,num
add [bx],ax 保存两个数相加的结果
lea dx,result
mov ah,9
int 21h
lea bx,num
mov ax,[bx] 取出两个数的和
push ax 保存一个备份
测试结果的符号位
and ax,1000000000000000b 取最高位
neg ax
sbb ax,ax
neg ax ax的值是0或1
add ax,30h 转为0或1的ascii码
lea bx,sign
mov [bx],al 存入符号位
pop ax 取出备份
cmp byte ptr [bx],30h 测试结果是否为正数
jz posi
neg ax 不为正,则求补取绝对值
posi:
push ax 压入第二个参数,即待转换的十六进制数的绝对值
lea di,sum
push di 压入第一个参数,接收结果的缓冲区
call BinaToDeci
lea dx,sign
mov ah,9
int 21h
mov ax,4c00h
int 21h
***********************************************************************
作用:将十六进制数,转为十进制字符,用以输出
形式:void BinaToDeci( [buff], int ),从右向左依次压入堆栈
参数1:第一个参数 [buff]:接收结果的缓冲区地址
参数2:第二个参数int :待转换的十六进制数字
返回值:无,直接保存到内存中
***********************************************************************
BinaToDeci proc
push bp
mov bp,sp
push ax
push bx
push cx
push dx
mov cx,0 初始化计数器,记录循环次数,即十进制数的位数
mov ax,[bp+6] 取出传入的待转换十六进制数,段内调用只加6,段间调用加8
计算出十进制各位数字,并保存到堆栈
bina_next:
xor dx,dx
mov bx,10
div bx
push dx
inc cx
cmp ax,0
jz bina_end
jmp bina_next
bina_end:
mov bx,[bp+4] 取出保存十进制数的缓冲区首地址
将十进制的各个位数转换成ascii码,并存入指定的内存区域
bina_next2:
pop ax
add ax,30h
mov byte ptr [bx],al
inc bx
loop bina_next2
字符串以'$'结尾,用以调用21号中段的9号例程
mov byte ptr [bx],'$'
pop dx
pop cx
pop bx
pop ax
mov sp,bp
pop bp
ret 4
BinaToDeci endp
***********************************************************************
***********************************************************************
作用:将十进制字符,转换为十六进制数,用以计算
形式:void DeciToBina( [buff], int ),从右向左依次压入堆栈
参数1:第一个参数 [buff]:放置十进制数字字符串的缓冲区的首地址
参数2:第二个参数int :十进制字符串的字符个数
返回值:十六进制的数字
***********************************************************************
DeciToBina proc
push bp
mov bp,sp
push bx
push cx
push dx
push si
mov bx,[bp+4] 取放置十进制字符串缓冲区的首地址
mov cx,[bp+6] 十进制数字字符串的字符个数
xor ax,ax
将ascii码还原为数字,并保存到堆栈
deci_next:
mov al,byte ptr [bx] 依次取缓冲区内的字符
sub al,30h
push ax
inc bx
loop deci_next
mov cx,[bp+6] 再次获得字符的个数
xor ax,ax
xor dx,dx
mov bx,1 用作乘数
xor si,si
各位相乘然后累加获得十六进制数值
结果=个位*1+十位*10+百位*100+千位*1000
deci_next1:
pop ax 取出数字
mul bx 相乘
add si,ax 累加结果
计算下次相乘时的乘数
mov ax,bx
mov bx,10
mul bx
mov bx,ax
loop deci_next1
将结果存入ax,为返回值
mov ax,si
pop si
pop dx
pop cx
pop bx
mov sp,bp
pop bp
ret 4
DeciToBina endp
***********************************************************************
codesg ends
end start
=====================================================
masm5测试通过
智慧软件使用 *** 作指南手册大智慧软件使用 *** 作指南2.1开机菜单启动系统,进入大智慧出现如下开机菜单,开机菜单清楚地显示了系统各项功能。在任一菜单的画面中,其各级选项均表示本级菜单所能实现的功能或所包括的所有可选项。 *** 作: 1、用【↑】、【↓】选择菜单中的某项功能。2、确定菜单选项后,按Enter键确认并执行所指定选项的 *** 作,按 Esc 键回到上一级菜单。
2.2下拉菜单为方便用户 *** 作,大智慧同时采用下拉式菜单设计,下拉式菜单包含了系统的所有功能。在任一选项菜单下,组成菜单的各项表示该菜单所能实现的功能或所包括的所有可选项。 *** 作: 1、任一界面下,用鼠标左键点击工具栏中的菜单,从中选择某项功能。2、确定菜单选项后,单击鼠标左键或按Enter键确认并执行所指定选项的 *** 作。
2.3大盘当日动态走势大盘当日动态走势,主要内容包括当日指数、成交总额、成交手数、委买/卖手数、委比、上涨/下跌股票总数、平盘股票总数等。另有指标曲线图窗口,可显示多空指标,量比等指标曲线图。激活功能:1、从开机菜单中选择"大盘分析",单击鼠标左键或按Enter键进入子菜单,确定选项后按Enter键确认并执行 *** 作,按Esc键退出当前菜单。2、从下拉菜单上选择"大盘走势",确定选项后,单击鼠标左键或按Enter键确认并执行 *** 作。 *** 作:1、Enter键切换到大盘K线图画面。2、PageUp查看上一个类别指数,PageDown查看下一个类别指数。3、01+Enter 或 F1,查看分时成交明细,02+Enter 或 F2,查看分价成交明细;10+Enter 或 F10 查看当天的咨讯信息。4、"/" 切换走势图的类型,并调用各个大盘分析指标。5、进入大盘的分时图或者日线图后,您可以发现在右下角这里新增了"大单"这项功能,按小键盘的"+"号键就能切换到大单揭示页面。它在沪深大盘分时走势页面提供了个股大单买卖的数据。用鼠标双击某一个股名称,可以切换到该股票的分时图界面。
2.4大盘分时走势大盘当日动态走势主要内容包括当日指数、成交总额、成交手数、委买/卖手数、委比、上涨/下跌股票总数、平盘股票总数等。另有指标曲线图窗口,可显示多空指标,量比等指标曲线图。激活功能:1、从开机菜单中选择"大盘分析",单击鼠标左键或按Enter键进入子菜单,确定选项后按Enter键确认并执行 *** 作,按Esc键退出当前菜单。2、从下拉菜单上选择"大盘走势",确定选项后,单击鼠标左键或按Enter键确认并执行 *** 作。 *** 作: 1、Enter键切换到大盘K线图画面。2、PageUp查看上一个类别指数,PageDown查看下一个类别指数。3、01+Enter 或 F1,查看分时成交明细,02+Enter 或 F2,查看分价成交明细;10+Enter 或 F10 查看当天的咨讯信息。4、"/" 切换走势图的类型,并调用各个大盘分析指标。5、进入大盘的分时图或者日线图后,您可以发现在右下角这里新增了"大单"这项功 能,按小键盘的"+"号键就能切换到大单揭示页面。它在沪深大盘分时走势页面提供了个股大单买卖的数据。用鼠标双击某一个股名称,可以切换到该股票的分时图界面。
2.5个股分时走势主要内容包括个股当日动态走势线、个股当日均价线、分时价量显示窗口(该窗口显示当前盘口情况,即当前个股的委托买卖情况)、分时价量表(详细显示各个时刻的分时成交明细)、个股基本面窗口等。另有指标曲线图窗口,可显示动量指标,量比指标等共八种指标的曲线图。激活功能:1、从开机菜单中的"分类报价"或"自选股报价"中选定个股,然后按Enter键确认并执行 *** 作。按Esc键退出。2、从下拉菜单"行情报价"中进入相应的行情列表,从中选定个股,然后按Enter键确认并执行 *** 作。按Esc键退出;
作者:220.188.149.* 2008-2-13 15:55 回复此发言
2 大智慧软件使用 *** 作指南手册
3、直接输入个股代码或个股名称拼音首字母,然后按Enter键确认并执行 *** 作, 如"深发展"输入"0001"或"sfz"即可。按Esc键退出。 *** 作: 1、通过Enter键循环切换个股K线图、行情列表、分时走势画面;2、PageUp查看上一个股动态分时走势,PageDown查看下一个股动态分时走势;3、"-"键用于改变盘口显示方式,"+"键循环切换右下角特色基本面窗口、个股分时走势图、个股分时成交明细。说明:通过"+"键切换至特色基本面窗口,可以浏览竞买竞卖指标、大单比率、五日换手总量、市盈率、每股收益、每股净资产、总股本等基本面数据。同时,大智慧还提供流通股本、流通市值、公司上市日期、概念板块等重要数据参考。让用户可以在短时间内大致了解上市公司(图二中"中报数据"表示基本面引用的是公司中报数据)。★ 特别注意:竞买、竞卖指标是判断市场资金流向的指标,当外盘/竞买大于内盘/竞卖时,表明场外有资金介入;反之就表明场内有资金在外逃。4、"/"快速切换分析指标。5、"大智慧"提供"上证指数"("深证成分")叠加功能。在个股分时走势图下,点击鼠标右键,从中选择"上证指数"("深证成分"),可将"上证指数"("深证成分")叠加到个股分时走势图上。 6、01+Enter或F1,查看个股分时成交明细;02+Enter或F2,查看个股分价成交明细 ;10+Enter或F10查看个股基本面资料。 2.6自定义指标参数(1) 在K线图下,选定技术指标后,通过07+Enter或F7可自定义指标参数(包括参数、式样和坐标的设定)。(2) 还可以用鼠标左键点中技术指标图形后,再点击鼠标右键,即可自定义指 标参数 ::小窍门:: 晚间资讯在收盘后会有信息地雷挂在大盘或个股分时图右侧的蓝色网格上,我们称之为晚间资讯。为您提供收市以后的资讯服务。如果在盘后有什么重大消息,我们会在这儿立即挂出地雷,盘中他会自动消失。 【Page Up】和【Page Down】可翻页。 点键评价功能,在个股走势和日线界面上使用"."键查看大智慧对个股的评价和 *** 作建议。再按一下"."键,可以查看综合评价。
2.7行情报价行情报价由以下内容组成:分类报价、智慧排行、综合排名、股指同列、多股同列、自选报价、板块(包括行业、地域、概念)报价。激活功能:0+Enter后选择相应报价或通过鼠标左键选择"行情报价"的某一选项,(如分类报价之上证A股 1)即可。 *** 作:1、用鼠标左键点击"行情报价",从中选取相应内容;或者通过【↑】、【↓】键选取相应的内容,然后按Enter键确认并执行 *** 作。2、行情列表下,Enter键循环切换个股分时走势、K线图、行情列表画面。3、【←】和【→】移动行情列表中的字段。4、"*"键改变字体大小;"/"键可快速切换排行内容。5、"行情报价"中备有"字段重组"功能。在行情列表下,选定任一字段,点鼠标右键,出现"字段重组"后,可从中选取所需字段。6、行情列表下,点击任一字段,可按字段内容自动进行相应的排行。7、大智慧板块报价包括每日更新的行业、地域、概念板块,可从"行情报价"中选取,详情请见特色功能说明。8、大智慧还推出多项智慧排行。"智慧排行"可从"行情报价"中选取,也可从开机菜单中进入,详情请见特色功能说明。 9、在行情报价界面点右键,可以将对应的个股添加至自选股中,当然也能做删除 *** 作。 10、根据相关数据计算出板块指数,提供高开低收量额等基本数值以提供盘中实时数据和F10资料.这些都是大智慧为您自动分类的。
2.8多股同列多股同列具有将多个股票的走势在一个画面中同时列出的功能。激活功能: 1、从开机菜单中选择"多股同列",Enter后选定相应的选项查看,Esc键退出。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)