汇编语言-汇编一个程序小问题,输入数字9的时候,结果不正确,谢谢帮忙啦~~~

问题描述

汇编一个程序小问题,输入数字9的时候,结果不正确,谢谢帮忙啦~~~

DATA SEGMENT
TABLE DB 00H,01H,04H,09H,16H,25H,36H,49H,64H,81H
RSLT DB ?
STRING DB 'please enter a number:','$'
STRING1 DB 0DH,0AH,'the result is:$'
DATA ENDS

STACK SEGMENT STACK
DB 100 DUP(?)
STACK ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
LEA DX,STRING
MOV AH,09H
INT 21H
MOV AH,01H ;接受一个字符,并回显
INT 21H ;注意:如果是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 DX,STRING1
MOV AH,09H
INT 21H

MOV DL,RSLT
CMP DL,9
JG NEXT1
JNG NEXT2

NEXT1:
MOV BL,DL
MOV CL,4
SHR DL,CL
ADD DL,30H
CALL NEXT3

MOV DL,BL
AND DL,0FH
ADD DL,30H
CALL NEXT3

MOV AH, 4CH
INT 21H

NEXT2:
ADD DL,30H
CALL NEXT3

MOV AH, 4CH
INT 21H

NEXT3:
MOV AH,02H
INT 21H
RET

MOV AH, 4CH
INT 21H

CODE ENDS
END START

解决方案

跳转指令的问题,把条件跳转改为ja(大于),jna(不大于)。

解决方案二:

刚去试了。真的是那的原因诶。百度看了一下。ja是用于无符号。jg用于有符号。但是。请问一下。这里的原因是什么啊。。谢谢~~

时间: 2024-11-02 18:49:08

汇编语言-汇编一个程序小问题,输入数字9的时候,结果不正确,谢谢帮忙啦~~~的相关文章

c语言-编写一个程序,打印输入中的单词长度的直方图。垂直方图。

问题描述 编写一个程序,打印输入中的单词长度的直方图.垂直方图. 直方图是如何理解????求教这道题~~ 这道题目是书上的!有没有懂的大神.给讲解啊. 解决方案 问题是怎么解决的? 我想到的就是算好格式用printf()一行行的输入,最后拼成直方图.

js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入

问题描述 js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入 js 求帮忙写一个正则表达式 要求只能输入 数字英文和汉字的 其他的一律不能输入 解决方案 [d|A-z|u4E00-u9FFF]+这个可以匹配简繁中文和任意数字以及字母. 解决方案二: 网上找的,试一下行不行 ^[u4E00-u9FA5A-Za-z0-9]+$ 解决方案三: 我试了一下可以啊 <input id=""a"" type=""text&

此程序是 程序-编写一个程序,打印输入中各个字符出现频度的直方图

问题描述 编写一个程序,打印输入中各个字符出现频度的直方图 #include /* NUM_CHARS should really be CHAR_MAX but K&R haven't covered that at this stage in the book / #define NUM_CHARS 256 int main(void) { int c; long freqarr[NUM_CHARS + 1]; long thisval = 0; long maxval = 0; int t

用javascript限制一个文本框只能输入数字

javascript 代码: <input name=mlizhong size=4 value='' maxlength=4    onkeypress="return event.keyCode>=48&&event.keyCode<=57"    onpaste="var s=clipboardData.getData('text'); if(!/\D/.test(s)) value=s.replace(/^0*/,''); retur

c# windows 中播放语音文件的一个简单小问题,用的是SoundPlayer,做过的帮忙看看,谢谢

问题描述 最近用SoundPlayer播放一些语音文件,就是只播放就可以了,现在有个简单的功能暂时没有实现,各位做过的帮忙看看,谢谢了.SoundPlayersdplayer=newSoundPlayer(Application.StartupPath+@"wav"+soundName);sdplayer.Play();--这里语音文件比较长,没播放完毕的时候不执行后面的代码 解决方案 解决方案二:换个控件吧.用这个实现不了的.你没法知道什么时候播放完了.解决方案三:开个线程播放就完了

【Android】设置EditText为仅输入数字且最多只能有两位数字

需求很简单,就是要设置一个EditText仅能输入数字且输入的数字中小数部分最多可以有两位. 第一步,很简单,在XML文件中,将EditText的inputType设置成NumberDecimal,多余的属性我就不写出来,只写出主要的部分: <EditText ... android:inputType="numberDecimal" ... /> 第二部,代码中修改EditText 的addTextChangedListener 方法,同样的先上代码,再来解释: Edit

excel表中输入数字很慢的解决方法

  excel表中输入数字很慢(输完数字,要等很久),字母.汉字都没问题. 在excel表中的某一个单元格里输入数字,要等很久,excel才有反应,输入字母和汉字及其它字符正常. 原因不明,直接说解决方法: 首选,全选这个有问题的excel表,然后选择复制.接着现新建一个excel表,右击A1单元格,然后选择"选择性粘贴"一定要选择"选择性粘贴"这一步很重要.接着在弹出的菜单里,选择"边框除外",然后按确定.之后,再重新添加边框即可. 如果,选择

问题-刚开始学习java ,自己写了一个聊天小程序,没报错但是有毛病,希望能帮忙问一下

问题描述 刚开始学习java ,自己写了一个聊天小程序,没报错但是有毛病,希望能帮忙问一下 刚开始学习java ,自己写了一个聊天小程序,没有报任何错误.测试时打开3个聊天小窗口 A,B,C,在A中输入文字,只在B中显示出来了,而且显示出了三句相同语句.查了好几个小时都没有查出来,希望高手能帮帮忙,看看是怎么回事,并且告诉我是通过什么方法找出来的. 以下是客户端和服务器端代码 客户端: import java.awt.*; import java.awt.event.*; import java

c语言-C语言用scanf清理输入缓存的一个程序

问题描述 C语言用scanf清理输入缓存的一个程序 源程序如下:#includeint main(){ int num; printf(""输入数字:""); scanf(""%d""&num); printf(""输入了数字:%dn""num); printf(""是否继续测试:[Y/N]"");scanf(""%*[