主题:[讨论]本人最近做的编程练习题
miaoyong
[专家分:760] 发布于 2011-01-31 15:51:00
本人最近做的编程练习题
这道题原本是我看到的一个小学生数学题,现在 我把它稍加改动,做成 汇编程序编程题
题目 要求 : 假设有一个无限非循环小数, 0.771711711171111711111.........
这个小数的小数位 精确到 210位 时 它们的位数相加 的和等于多少?例如
7+7+1+7+1+1+7+1+1+1+7+1+1+1+1.........这样加下去到210 位的和是多少?
现在要求用汇编语言程序设计, 求出一下3个数据结果:
1. 输入一个数 表示小数位数长度 例如 210 位 ,求出这个序列数的和? 显示出来
2. 求出这个位数的最后一位是 '7' 还是 '1' 并显示出来;
3. 求出这个序列数 的循环次数,例如 7 71 711 7111 71111 循环5次,并显示出来
期待他家的参与,
我已经把程序作出了,等待大家有不同的解法
我做的程序是可以满足求 1000一下 位数的和!
回复列表 (共7个回复)
沙发
miaoyong [专家分:760] 发布于 2011-01-31 16:29:00
程序截图
[img]http://photo.blog.sina.com.cn/photo/5ee4bba3x9b2010aa2aaa[/img]
板凳
miaoyong [专家分:760] 发布于 2011-01-31 16:32:00
http://photo.blog.sina.com.cn/controllers/photo_edit_flash.php?pic_id=5ee4bba3x9b2010aa2aaa&ctg_id=209501&title=ccf
3 楼
miaoyong [专家分:760] 发布于 2011-01-31 16:39:00
tupian
http://g1a54.mail.126.com/app/wp/doGetFile.jsp?sid=LBIURsAcwcUKUlfJeJcckSSnDJOdPOLX&mode=download&mid=67:1tbiQxXUA00vIeNoHAACsX
4 楼
miaoyong [专家分:760] 发布于 2011-01-31 16:41:00
怎么不能同时显示图片呀!!!!!!!!!!!
麻烦楼主发个 上传图片的方法?
5 楼
miaoyong [专家分:760] 发布于 2011-01-31 16:55:00
[url=http://]http://g1a54.mail.126.com/app/wp/doGetFile.jsp?sid=LBIURsAcwcUKUlfJeJcckSSnDJOdPOLX&mode=download&mid=67:1tbiQxXUA00vIeNoHAACsX[/url]
6 楼
miaoyong [专家分:760] 发布于 2011-03-07 10:11:00
怎么没人关注啊?我的 代码有点长,我贴上代码:
dat segment
msg1 DB 'please input a integer $'
msg2 DB 'context result is: $'
msg2Len EQU $ - msg2
msg3 DB 'input error! $'
msg7 DB ' $'
msg4 DB 'SUM = $'
msg5 DB 'Cycle count = $'
msg6 DB 'end char = $'
nReg DW 20 DUP(?)
BitNum DW ?
CYCLE1 DW ?
SUM1 DW ?
iNum DW ?
Ed1 DW ?
BitN DB 10 DUP(?)
dat ends
datstack segment para stack 'stack'
darray DB 300 DUP(?)
top DW ?
datstack ends
7 楼
miaoyong [专家分:760] 发布于 2011-03-07 10:11:00
code segment
assume DS:DAT,CS:code,SS:datstack
start: XOR AX,AX
MOV AX,dat
MOV DS,AX
MOV AX,datstack
MOV SS,AX
STOI MACRO sour,count,iResult
LOCAL L
MOV BX,0H
MOV SI,0H
MOV BL,01H
L: MOV AX,00H
MOV AL,BL
MUL BYTE PTR[sour]
ADD SI,AX
INC sour
MOV AL,BL
MOV BH,10
MUL BH
MOV BL,AL
DEC count
CMP count,00H
JNE L
MOV iResult,SI
ENDM
;LEA DI,msg1
RI: MOV DX,offset msg1
MOV AH,09H
INT 21H
CALL showCR
MOV SI,00H
loop1: MOV AH,01H
INT 21H
SUB AL,30H
MOV BYTE PTR[BitN+SI],AL
INC SI
ADD AL,30H
CMP AL,0DH
JNE loop1
CMP SI,4
JA RITIP
JLE CON
RITIP: MOV DX,offset msg3
MOV AH,09H
INT 21H
CALL showCR
JMP RI
CON: XOR AX,00h
DEC SI
MOV nReg,SI
CMP nReg,01H
JZ A1
CMP nReg,02H
JZ A2
CMP nReg,03H
JZ A3
A2: MOV AL,BYTE PTR[BitN+0]
MOV AH,BYTE PTR[BitN+1]
MOV BYTE PTR[BitN+1],AL
MOV BYTE PTR[BitN+0],AH
JMP A1
A3: MOV AL,BYTE PTR[BitN+0]
MOV AH,BYTE PTR[BitN+2]
MOV BYTE PTR[BitN+2],AL
MOV BYTE PTR[BitN+0],AH
A1: LEA DI,BitN
STOI DI,nReg,BitNum
MOV CX,BitNum
MOV AX,00H
MOV BX,0001H
ADD AX,07H
DEC CX
C2: ADD AX,07H
MOV Ed1,07H
INC BX
DEC CX
CMP CX,00H
JZ C3
MOV BP,BX
SUB BP,01H
MOV DX,BP
C1: ADD AX,01H
MOV Ed1,01H
DEC DX
DEC CX
CMP CX,00H
JZ C3
CMP DX,00H
JNZ C1
CMP CX,00H
JNZ C2
JZ C3
C3: MOV CYCLE1,BX ;
MOV CYCLE1,BX ;cycle count
MOV SUM1,AX ;
MOV SUM1,AX ;complate sum
MOV AX,Ed1 ;end integer
我来回复