回 帖 发 新 帖 刷新版面

主题:几道作业题,大家帮下忙

2、求1~10的累加和,累加和保存在DX寄存器中,程序调试成功后,在debug模式下查看DX寄存器的内容并截图。
3、先提示输入数字“Input Number:0~9”,然后在下一行显示输入的数字,结束;如果不是键入了0~9数字,就提示错误“Error!”,继续等待输入数字。
提示:
(1)    在数据段定义变量
定义输出信息的字符串变量,输出信息包括提示信息以及“Error!”
格式:string DB ‘提示信息’,‘$’
(2)    输出提示信息
(3)    输入数字
系统功能调用,输入一个字符
    MOV    AH,1
    INT        21H            ;输入字符的ASCII码将保存在AL寄存器中
(4)    判断
判断输入字符的ASCII码,从而判定输入的是否是数字。如果是数字,程序结束;如果不是则继续输入。
4、已知用于LED数码管显示的编码表为:
LEDtable        DB    0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h
            DB    80h,90h,88h,83h,0c6h,0c1h,86h,8eh
它依次表示0~9,A~F这16个数码的显示编码。
编写一个程序,将键盘输入的数字(0~9,A~F)转换成对应的LED显示编码,将编码存储在AX寄存器中。


[b]就是这三道题,高手帮下忙啦,急![/b]

回复列表 (共2个回复)

沙发

[2];1-10累加和代码如下
data    segment
data    ends
code    segment
    assume  cs:code,ds:data
start:  mov  ax,data
    mov  ds,ax
    mov  dx,1
    mov  bx,2
    mov  cx,9
lp:    add  dx,bx
    inc  bx
    loop lp
    int  21h
    mov  ah,4ch
    int  21h
code    ends
    end  start

板凳

【3】如果输入非数字重新输入,直到输入数字为止
data    segment
    str1 db 'Input Number:0-9',0dh,0ah,'$'
    str2 db 'Error!!',0dh,0ah,'$'
data    ends
code    segment
    assume  cs:code,ds:data
start:  mov  ax,data
    mov  ds,ax
    mov  dx,offset str1
    mov  ah,9h
    int  21h;显示 'Input Number:0-9'
    jmp  lop
lp:    lea  dx,str2
    mov  ah,9h
    int  21h;显示 'Error!!'
lop:    mov  ah,1h
    int  21h
    cmp  al,30h ;与‘0’比较
    jb   lp; 小于跳到 lp
    cmp  al,39h;与 ‘9’比较
    ja   lp;大于跳到 lp
    mov  ah,4ch
    int  21h
code    ends
    end  start

我来回复

您尚未登录,请登录后再回复。点此登录或注册