开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1339|回复: 3
收起左侧

[源码分享] 数制转换程序

[复制链接]
发表于 2013-1-19 14:26:32 | 显示全部楼层 |阅读模式   湖北省十堰市
实验二  数制转换程序
【实验目的】                       
1.掌握汇编语言程序结构。
2.掌握建立、汇编、链接、调试和运行汇编程序的过程。
3.掌握DOS功能调用 INT 21H 02号功能字符显示输出方法。
4.掌握INT 21H 4C号功能返回系统的方法。
【实验性质】
验证性实验(学时数:2H)
【实验内容】
一、完成一个十六位二进制数到十六进制数的转换操作程序设计。
参考程序:
;将二进制数一边转换成十六进制数一边显示(用2号功能调用)
DATA    SEGMENT
BUFA    DW  1111001000110100B       ;F234H
DATA    ENDS
CODE    SEGMENT
        ASSUME CS:CODE,DS:DATA
BEG:    MOV AX,DATA
        MOV DS,AX
        MOV DX,BUFA
        MOV CH,4        ;循环控制十六进制数显示位数
        MOV CL,4        
ROTATE: ROL DX,CL       ;循环左移4位,将高位十六进制数移到低位
        MOV BX,DX       ;保护移动后的数
        AND DX,0FH      ;屏蔽掉高位保留该低位数
        CMP DL,9
        JG L
        ADD DL,30H      ;转换成ASCII码
        MOV AH,2        ;送显示
        INT 21H
        JMP NEXT
L:      ADD DL,37H
        MOV AH,2
        INT 21H
NEXT:   MOV DX,BX
        DEC CH
JNZ ROTATE
        MOV AH,4CH
        INT 21H
CODE    ENDS
        END START
二、把上题改造成COM文件的编程格式,汇编、链接和运行调试该程序。
参考程序:
CODE    SEGMENT
        ASSUME CS:CODE
        ORG 100H
BEG:    JMP START
BUFA    DW  0001001000110100B       ;1234H(用户程序数据区)
START:  MOV DX,BUFA
        MOV CH,4        ;循环控制十六进制数显示位数
        MOV CL,4        
ROTATE: ROL DX,CL       ;循环左移4位,将高位十六进制数移到低位
        MOV BX,DX       ;保护移动后的数
        AND DX,0FH      ;屏蔽掉高位保留该低位数
        CMP DL,9
        JG L
        ADD DL,30H      ;转换成ASCII码
        MOV AH,2        ;送显示
        INT 21H
        JMP NEXT
L:      ADD DL,37H
        MOV AH,2
        INT 21H
NEXT:   DEC CH
        MOV DX,BX
        JNZ ROTATE
        MOV AH,4CH
        INT 21H
CODE    ENDS
        END BEG
三、参照上述程序完成一个十六位二进制数到十进制数的转换操作程序设计。
四、加分题:完成从键盘输入一个任意十六位二进制数到十六进制数的转换操作程序设计。
提示:在数据区定义19个字节的字符串区,用INT  21H 的10#功能,进行字符串输入,判断实际输入的字节数是否为16个,每个字节的内容是否为30H或31H,不是,则提示重新输入或退出,是,则把该区域的16个ASCII码30H、31H的字符从低位到高位(或相反顺序)转换成1010110101110111的形式,用上述程序进行转换输出。
思考题
1)若在源程序中把INT 21H的'H'省去,会产生什么现象?
2)把 INT 21H 4CH号功能改为 INT 20H,行不行?
3)从键盘输入的二进制ASCII字符串,在转换成十六进制数据时,有哪几大步骤?
【实验要求】
1.列出自编程序的程序清单,并加适当注释。
2.写出汇编,连接及调试程序时产生的错误,其原因及解决办法。
3.总结EXE文件和COM文件的编程格式。
4.回答思考题。

发表于 2013-1-22 16:08:51 | 显示全部楼层   北京市北京市
看看,楼主!
回复 支持 反对

使用道具 举报

发表于 2013-1-19 15:29:29 | 显示全部楼层   四川省南充市
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

头像被屏蔽
结帖率:0% (0/1)
发表于 2013-1-19 14:31:08 | 显示全部楼层   江苏省宿迁市
不会  汇编,来学习学习!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表