【虎彡】高手来!棘手的问题 !3个子程序找错******************
时间:2011-01-22
来源:互联网
DATA SEGMENT
SHUZ DB '123456789'
DB 'ABCDEFGHIGKLMNOPQRSTUVWXYZ'
SJS DB 0,0 ;保存2个随机数
ZZL DW 0
YZL DW 0
ZLPC DB 0
DATA ENDS
首先 取1个随机数 放在SJS中 随机数只能是SHUZ缓冲区的其中一个~并从0行逐渐下降
然后按1则CALL S_ZZL 按2则CALL S_YZL
;----------------------------------
S_ZZL PROC NEAR ;随机数是否大于9?(大于9则是字母)是则把AL置8
PUSH AX ;否则-30H 变换成数字,并存放到ZZL缓冲区
MOV AL,SJS
MOV AH,0
CMP AX,39H
JA B_9
JMP J_S
B_9:MOV AX,8h
JMP S_ZJ
J_S:SUB AX,30H
S_ZJ: ADD ZZL,AX
POP AX
RET
S_ZZL ENDP
;-----------------------
S_YZL PROC NEAR
PUSH AX
MOV AL,SJS
MOV AH,0
CMP AX,39H
JA B_92
JMP J_S2
B_92:MOV AX,8h
JMP S_ZJ2
J_S2:SUB AX,30H
S_ZJ2: ADD YZL,AX
POP AX
RET
S_YZL ENDP
;-----------------------------
再然后比较ZZL YZL两个缓冲区数值大小,并算出偏差值 比如ZZL是8 YZL是2 则8-2=6 并送入ZLL和ZLPC 2个缓冲区
B_PC proc near
PUSH AX
push bx
mov ax,zzl
mov bx,yzl
cmp ax,bx
jb H_WZ
sub ax,bx
mov zzl,ax
mov zlpc,al
mov yzl,0
H_wz: sub bx,ax
mov yzl,bx
mov zlpc,bl
mov zzl,0
pop bx
pop ax
RET
B_PC ENDP
;----------------------------
问题1:子程序返回后 把ZLPC的数值显示,我直接+30H显示,但是显示出的居然超过9,是各种符号!
问题2:如果两数偏差值大于9 则结束
cmp zzl,9
ja over
cmp yzl,9
ja over
但是结果是没超过9也结束 超过9却不结束! 这些片段中某一环节出错!困扰我两天了
如果谁能帮我找出错误 追加100分!谢谢
SHUZ DB '123456789'
DB 'ABCDEFGHIGKLMNOPQRSTUVWXYZ'
SJS DB 0,0 ;保存2个随机数
ZZL DW 0
YZL DW 0
ZLPC DB 0
DATA ENDS
首先 取1个随机数 放在SJS中 随机数只能是SHUZ缓冲区的其中一个~并从0行逐渐下降
然后按1则CALL S_ZZL 按2则CALL S_YZL
;----------------------------------
S_ZZL PROC NEAR ;随机数是否大于9?(大于9则是字母)是则把AL置8
PUSH AX ;否则-30H 变换成数字,并存放到ZZL缓冲区
MOV AL,SJS
MOV AH,0
CMP AX,39H
JA B_9
JMP J_S
B_9:MOV AX,8h
JMP S_ZJ
J_S:SUB AX,30H
S_ZJ: ADD ZZL,AX
POP AX
RET
S_ZZL ENDP
;-----------------------
S_YZL PROC NEAR
PUSH AX
MOV AL,SJS
MOV AH,0
CMP AX,39H
JA B_92
JMP J_S2
B_92:MOV AX,8h
JMP S_ZJ2
J_S2:SUB AX,30H
S_ZJ2: ADD YZL,AX
POP AX
RET
S_YZL ENDP
;-----------------------------
再然后比较ZZL YZL两个缓冲区数值大小,并算出偏差值 比如ZZL是8 YZL是2 则8-2=6 并送入ZLL和ZLPC 2个缓冲区
B_PC proc near
PUSH AX
push bx
mov ax,zzl
mov bx,yzl
cmp ax,bx
jb H_WZ
sub ax,bx
mov zzl,ax
mov zlpc,al
mov yzl,0
H_wz: sub bx,ax
mov yzl,bx
mov zlpc,bl
mov zzl,0
pop bx
pop ax
RET
B_PC ENDP
;----------------------------
问题1:子程序返回后 把ZLPC的数值显示,我直接+30H显示,但是显示出的居然超过9,是各种符号!
问题2:如果两数偏差值大于9 则结束
cmp zzl,9
ja over
cmp yzl,9
ja over
但是结果是没超过9也结束 超过9却不结束! 这些片段中某一环节出错!困扰我两天了
如果谁能帮我找出错误 追加100分!谢谢
作者: znxllyuan 发布时间: 2011-01-22
再求!!!!
作者: znxllyuan 发布时间: 2011-01-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28