| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 576 人关注过本帖
标题:[求助]请改下我的程序,有点问题:(
只看楼主 加入收藏
manestang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-4-18
收藏
 问题点数:0 回复次数:7 
[求助]请改下我的程序,有点问题:(

要求是程序运行后 先显示:please input an integer
然后输入0-11的中的一个数 显示出它的平方数
自己做的问题太多了。。。。。


stack SEGMENT STACK
stack ENDS
DATA SEGMENT
STARTBUFF DB 'please input an integer'
TABLE DB 0,1,4,9,16,25,36,49,64,81,100,121
FACTOR DB 100, 10, 1
;STRRESULT DB 31,32,33,"$"
STRRESULT DB ?,?,?,"$"
RSLT DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:stack
START: MOV AX,DATA
MOV DS,AX
MOV AH,00H
INT 16H
AND AL,0FH
XOR BX,BX
MOV BL,AL
LEA SI,TABLE

MOV AL,[SI+BX]
;MOV RSLT,AL


LEA SI,STRRESULT
LEA DI, FACTOR
XOR DX,DX
MOV BX,100
;MOV AX, 3
MOV CX, 3

AGAIN: DIV BYTE PTR[DI];AX除因子
ADD AL,30H;商加上30即可得到相应数字的ASCII码
MOV BYTE PTR[SI],AL
INC SI;结果
INC DI;因子
MOV DX,CX
MOV CL,8
SHR AX,CL;将余数作为下一次的被除数
MOV CX,DX
LOOP AGAIN
LEA SI,STRRESULT
bb:
CMP BYTE PTR [SI],'0' ;不输出前面的0字符
JNE print
INC SI
LOOP bb
print:
MOV DX,SI
MOV AH,09h
INT 21h

;MOV DL, [SI]
;MOV AH,02h
;INT 21h


MOV AH,00H
INT 16H

MOV AH,4CH
INT 21H
CODE ENDS
END START

搜索更多相关主题的帖子: please 
2006-12-04 15:43
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
可以参考[URL=http://bbs.]http://bbs.[/URL]

2006-12-04 17:34
manestang
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-4-18
收藏
得分:0 
看了 还是不太知道怎么改
2006-12-04 18:40
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
如果输入小于等于3,则直接ADD AL,30H 再输出;如果输入大于3,则判断个位、十位、百位,判断后再分别输出每一位



2006-12-04 20:40
曾小
Rank: 1
等 级:新手上路
威 望:1
帖 子:239
专家分:0
注 册:2006-9-27
收藏
得分:0 
4楼同学的我看不懂啊!
我对显示输入和输出的指令还不熟悉.不知道怎么用.
我只知道在一个单元中查找出某个数的平方.

2006-12-09 19:22
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
收藏
得分:0 
我知道的中断只能输出字符或字符串  而3以上的数平方结果是两位数以上  所以要判断每一位

2006-12-09 22:36
lefttime
Rank: 1
等 级:新手上路
帖 子:162
专家分:0
注 册:2006-10-6
收藏
得分:0 
我的一个例子(0-9):
DATA SEGMENT
SEN1 DB 0AH,0DH,'Please input a number(0-9): $'
SEN2 DB 0AH,0DH,'The result is: $'
TABLE DB 00H,01H,04H,09H,10H,19H,24H,31H,40H,51H
X DB 2 DUP(0)
Y DB 2 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,9
LEA DX,SEN1
INT 21H
MOV AH,1
INT 21H
MOV X,AL
AND AL,0FH
LEA BX,TABLE
XLAT
MOV Y,AL
AAM
MOV BX,AX
OR BX,3030H
LEA DX,SEN2
MOV AH,9
INT 21H
MOV AH,2
MOV DL,BH
CMP DL,30H
JZ NEXT
INT 21H
NEXT: MOV DL,BL
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START

我是金子,我要闪光的
2006-12-10 16:36
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
楼主把你的模块实现的功能给一点注释这样让人看起来也比较好看懂一些!

♂ 死后定当长眠,生前何须久睡。♀
2006-12-10 18:39
快速回复:[求助]请改下我的程序,有点问题:(
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019604 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved