两个程序的奇怪问题??

seaman117 seaman117 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
第一个功能:在以ENGLISH为首址的字节存贮区中,顺序存放着100名学生的英语考试成绩,请统计其中60分以下的学生人数→DX,如DX为0则显示“GOOD!”,否则显示“POOR!”。
printf macro info
lea dx,info
mov ah,9
int 21h
endm

stack segment stack
db 200 dup(0)
stack ends

data segment

english db 60d,70d,84d,81d,65d,94d,75d,62d,88d,94d
;english db 56d,70d,84d,56d,43d,94d,75d,62d,88d,94d

pass db 0dh,0ah,'All score over 60, good! $'
nopass db 0dh,0ah,'Have some score blow 60, poor! $'

data ends

code segment
assume ds:data,cs:code,ss:stack
start: mov ax,data
mov ds,ax

mov bx,0
mov cx,10

lea si,english

mov al,60d

next:mov bl,[si]
cmp bl,al
jb adddx
inc si
loop next
jmp checkdx

adddx: inc dx
inc si
loop next

checkdx:cmp dx,0h
jbe good
printf nopass
jmp exit

good:printf pass

exit: mov ah,4ch
int 21h

code ends
end start
在td里调试运行正常,但运行程序确显示Have some score blow 60, poor!明明已经跳转出来了的

第二个功能:从键盘输入一个两位的十六进制ASCII码,如为合法的ASCII码,则紧跟其后显示该ASCII码所对应的字符;如为非法数,则显示错误提示;如输入为回车,则结束程序的执行
prints macro info
lea dx,info
mov ah,9
int 21h
endm

getchr macro info
lea dx,info
mov ah,10
int 21h
endm

printb macro info
mov dl,info
mov ah,2
int 21h
endm

check macro info
mov al,info
cmp al,0
jb error
cmp al,46h
ja error
endm

searchtable macro info
mov cl,info
sub cl,30h
mov al,cl
mov bx,offset indextable
xlat indextable
endm

stack segment stack
db 200 dup(0)
stack ends

data segment

inputbuff db 4
db 4 dup(0)

inputerror db 0ah,0dh,'Input error!! $'
inputinfo db 0ah,0dh,'ASCII code:$'
outputinfo db 0ah,0dh,'Character is:$'

indextable db 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH,0BH,0CH,0DH,0EH,0FH

data ends

code segment
assume ds:data,cs:code,ss:stack
start: mov ax,data
mov ds,ax

next: prints inputinfo
getchr inputbuff
lea si,inputbuff
cmp [si+1],byte ptr 0
jz exit
mov dh,[si+2]
check dh
searchtable dh
mov dh,al

mov dl,[si+3]
check dl
searchtable dl
mov dl,al

mov cl,4
shl dh,cl
or dl,dh

mov cl,dl
prints outputinfo
printb cl
jmp next


error: prints inputerror
jmp next

exit: mov ah,4ch
int 21h

code ends
end start

当输入的是A0-FF的ascii码是都显示不正确,主要是在查表的时al都是赋值成0了,但是我定义的有这个值啊!


那个老大请不惜指正,十分十分感谢!!!
...全文

相关推荐

founder的字vb4两个的组合,会产生什么奇怪的问题?开发的过程都需要帮助

founder的字vb4两个的组合,会产生什么奇怪的问题?开发的过程都需要帮助

hujiasuta

程序中两个Double类型相加出现误差的解决办法

今天在自己做的系统中,发现了一个奇怪的现象:几个Double类型的数据相加,到最后得出的金额比正确数值总是少了几毛钱。以为是程序里的计算方法有问题,可是排查了很多地方,始终没有找到问题出在哪里。最后干脆把计算方法一句一句拆分,得到了最后最简单的一步,就是把两个具体的数值相加,但是最后的结果居然还是错误的。比如,现在已经到了最简单的一步: 代码如下:double n = 171.6;double m = 28.17;double k = n + m;  按理说k的值应该是199.77,但其实得到的居然是199.76999999999998。      我们的系统里有保留小数位数为4位,按理是可以

weixin_38500944

什么是奇怪的数列以及学习了解奇怪的数列的意义是什么

奇怪的数列

bug生成中

c++奇怪的魔塔

c++期末大作业,包含所学的各种知识点,代码易懂不超纲

WindSearcher

一个奇怪的问题使用ajax提交必须alert才能赋值

一个奇怪的问题,在使用ajax提交的时候将返回值赋给一个变量,无论怎么写都没法赋值,刚开始怀疑js有错但是ie没有反应过来,多次清缓存、部程序都没效果。。。。。。最后只好一行一行的alert看原因出在哪里;奇怪的是加上了alert之后就可以赋值,删掉alert后就又不可以了。百度了一下发现是因为ajax默认是异步执行的,也就是并没有等待请求完毕就开始执行下一行js语句了,导致赋值为null。 如果遇到ajax请求后有回调函数之类的问题就要加上async:false,注意如果是给false加上引号是没发解决问题的。 代码如下: $.ajax({ async:false })

weixin_38656226
评论 8
收藏 已收藏
分享
返回顶部
seaman117
汇编语言 21,500 成员 41,619 内容