[修改程序]把原给定数据改成键盘输入数据
时间:2010-12-07
来源:互联网
Assembly code
.model small,c .stack .data data dw 1567,25,46,4560,678,1234,32540 ;数据数组 len db $-data ;数组个数的两倍(dw) .code ;子程序功能:用十进制字符串显示ax中的值 ;入口参数:ax=所要显示的数值 ;出口参数:无 dispax10 proc uses dx bx cx mov bx,10 mov cx,0 next1: mov dx,0 div bx add dx,'0' push dx inc cx cmp ax,0 jnz next1 next2: pop dx mov ah,02h int 21h loop next2 mov dl,20h int 21h ret dispax10 endp .startup xor ax,ax xor cx,cx xor bx,bx xor si,si xor di,di mov cl,len shr cx,1 ;cx/2,则cx=数组个数 again1: dec cx cmp bx,cx ;bx=i,cx=L;cmp(i,L-1) jge over ;i>=L-1时,外循环结束 inc cx inc bx mov ax,bx ;ax=bx+1 => j=i+1 dec bx again2: cmp ax,cx ;ax=j,cx=L;cmp(j,L) jge cntinu1 ;若j>=L,内循环结束,否则交换数据 mov si,bx ;定义两个指针,si=i,di=j分别指向数组内的两个数据 mov di,ax shl si,1 ;si*2,还原数值在数组中的位置 shl di,1 push ax mov ax,data[si] cmp ax,data[di] ;比较data[i]与data[j] jle cntinu2 xchg ax,data[di] ;若有data[i]>data[j],交换两者数值 mov data[si],ax cntinu2: pop ax inc ax jmp again2 cntinu1: inc bx jmp again1 over: xor cx,cx mov cl,len shr cx,1 mov bx,0 again3: mov ax,data[bx] ;以十进制显示数组数值;程序结束 call dispax10 add bx,2 loop again3 .exit 0 end
作者: kartik 发布时间: 2010-12-07
其实就是与你的 dispax10 很相似的一个子程序。
输入每一个数字都是反复地用 INT 21H的1号功能读入字符,直到读入回车键(0DH)。
循环中做这样的处理:
循环前先给某寄存器或内存变量预置一个初值0,每读入一个数字字符,将它化成对应的数字(减30H),然后将前面的那个寄存器或内存变量的数乘以10,再加上刚转化成数字的那个数。
循环完后,那个寄存器或内存变量中就是你输入的数,把它送数组data中即可。
输入每一个数字都是反复地用 INT 21H的1号功能读入字符,直到读入回车键(0DH)。
循环中做这样的处理:
循环前先给某寄存器或内存变量预置一个初值0,每读入一个数字字符,将它化成对应的数字(减30H),然后将前面的那个寄存器或内存变量的数乘以10,再加上刚转化成数字的那个数。
循环完后,那个寄存器或内存变量中就是你输入的数,把它送数组data中即可。
作者: shzhfu 发布时间: 2010-12-08
请楼主参考下面程序里,标号loada和loadb的处理,我用的方法是在数据段定义一个tab表
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=32262&kindLevel=1&kindId=47796&postId=49334&readSg=1
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=32262&kindLevel=1&kindId=47796&postId=49334&readSg=1
作者: masmaster 发布时间: 2010-12-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28