| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4321 人关注过本帖
标题:汇编新手,要求从键盘输入5条数据信息存储在数据区message;然后从键盘接收 ...
只看楼主 加入收藏
HB_Me
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-12-31
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
汇编新手,要求从键盘输入5条数据信息存储在数据区message;然后从键盘接收 1-5 的数字,显示相应的信息。
在数据区定义msg0-msg9十条信息,从键盘中输入0-9,输出相应的信息。
;定制显示字符串的宏
say macro msg
    push ax
    push dx
    mov dx,offset msg
    mov ah,9
    int 21h
    pop dx
    pop ax
    endm
;定制堆栈段
stack segment stack
db 64 dup(0)
stack ends
;定制数据段
data segment
;定制十条信息
msg0 db '0. File',13,10,36
msg1 db '1. Eidt',13,10,36
msg2 db '2. Search',13,10,36
msg3 db '3. Cat',13,10,36
msg4 db '4. Copy',13,10,36
msg5 db '5. Paste',13,10,36
msg6 db '6. Select',13,10,36
msg7 db '7. Del',13,10,36
msg8 db '8. List',13,10,36
msg9 db '9. Exit',13,10,36
;定制十条信息的指针数组
index dw msg0,msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9
;定制一条关于输入的提示信息:
msg db 'Input a number please. (Enter ==> exit.)',13,10,36
;定制一条关于结束的提示信息:
goodbye db '====Goodbye!====$'
data ends
;编写代码段
code segment
    assume cs:code,ds:data,ss:stack
start:
;初始化数据段
    mov ax,data
    mov ds,ax
next:
;显示提示信息:
    say msg


;调用DOS中断,接收用户的输入
    mov ah,7
    int 21h ;接收的数据在al中


;如果输入的是回车键,则退出
    cmp al,13
    jz exit


;al从键盘接收的码是数字字符的ASCII码
;必须把它转换为对应的数:
    sub al,'0'


;如果用户输入的不是0到9的数字键,则跳过:
    cmp al,9
    ja invalid


;否则,就将该数变换为index数组元素的下标
    shl al,1
    xor ah,ah
    mov si,ax


;根据下标si,从index指针数组中装载相关信息的首地址给DX,
;并调用DOS中断,显示之
    mov dx,index[si]
    mov ah,9
    int 21h
invalid:
    jmp next ;再选择下一个
    
exit:  ;返回DOS
    say goodbye
    mov ax,4c00h
    int 21h
code ends
  end start
但是现在要求从键盘输入5条数据信息存储在数据区message;然后从键盘接收 1-5 的数字,显示相应的信息。这样一转变,工作量大了不少,从键盘录入信息,要用dw,问题是怎么将他们排序,还要按1-5的数字对应显示,怎么将他们串联起来,试了很多次,出错了好多次,不知道怎么办了。
搜索更多相关主题的帖子: message 字符串 键盘 信息 
2014-12-31 11:43
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
关于dos汇编  现在接触的人很少了

DO IT YOURSELF !
2015-01-04 08:17
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
以下是引用wp231957在2015-1-4 08:17:44的发言:

关于dos汇编  现在接触的人很少了

都淘汰了 反正我是不玩
2015-01-04 08:46
快速回复:汇编新手,要求从键盘输入5条数据信息存储在数据区message;然后从键盘 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015057 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved