欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

汇编语言输入输出遇到有关问题,求高手帮忙

更新时间: 2014-01-05 03:17:25 责任编辑: Author_N1

 

汇编语言输入输出遇到问题,求高手帮忙
代码如下,想要完成10个学生信息的输入输出,请高手帮忙看看问题出在哪里?

data segment
student_id db 10 dup(5,?,5 dup('$')) ;学号4位
student_name db 10 dup(6,?,6 dup('$')) ; 姓名5位字符
student_sex db 10 dup (?)
student_score db 10 dup (2,?,2 dup('$'))
table dw 4 dup(?)
mess1 db "please input student's ID that you want to delete:",0ah,0dh,'$'
data ends
code segment
assume ds:data,cs:code,es:data
start:
mov ax,data
mov ds,ax
mov es,ax

;-------------------------------------------宏定义
pianyi macro num,ad ;opr1是cx,opr2是数组首地址
push cx
mov ax,10 ;循环3次
sub ax,num ;计算每个数组的偏移地址,存入AX
mul al,10 ;每个数组是10个元素
add ad,ax
pop cx
endm
;---------------------------------------------宏定义换行回车
endl macro 
push dx
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
pop dx
endm
;-------------------------------------------- ;定义地址表
mov table  ,offset student_id
mov table+2,offset student_name
mov table+4,offset student_sex
mov table+6,offset student_score
mov bx,offset table ;地址表首地址放入bx

;--------------------------------------------
call input

call delete

call print

mov ax,4c00h
int 21h

input proc near
mov cx,10

input_again:

mov dx,[bx] ;输入学号
pianyi cx,dx
mov ah,10
int 21h

endl

mov dx,[bx+2] ;输入姓名
pianyi cx,dx
mov ah,10
int 21h

endl

mov di,[bx+4] ;准备输入性别

mov ax,10 ;计算student_sex数组的偏移
sub ax,cx
add di,ax

mov ah,1
int 21h
mov byte ptr [di],al

endl

mov dx,[bx+6] ;输入成绩
pianyi cx,dx
mov ah,10
int 21h

endl

loop input_again ;循环10次

ret
input  endp

print proc near
mov cx,10
mov dh,0

print_again:
mov dx,[bx]+2 ;输出学号
pianyi cx,dx
mov ah,9
int 21h

endl

mov dx,[bx+2]+2 ;输出姓名
pianyi cx,dx
mov ah,9
int 21h

endl

mov di,[bx+4] ;输出性别

mov ax,10 ;计算student_sex数组的偏移
sub ax,cx
add di,ax
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:17:25
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20428/
本文WWW.DOC100.NET DOC100.NET版权所有。