【www.scfx8.com--安全生产总结】

学 计 算 机 与 信 息 技 术 学 院 实 验 报 告 姓 名 学 号 专业班级 计科 课程名称 汇编语言 实验日期 成 绩 指导教师 批改日期 实 验 名 称 实验六:数制转换 实验目的:

设计此题目主要目的在于加深对汇编语言课程理论实践方面的理解。通过编写一定规模和难度的程序,进行比较全面的汇编语言编程训练,掌握汇编编程的思想,提高分析问题和解决问题的能力,并提高调试程序的能力,更深一步的掌握理论应用于实践 实验内容: 有用户输入一个十六进制数,对输入的数以二进制输出 代码:

datarea segment num db 4 dup(?) datarea ends code segment main proc far assume cs:code, ds:datarea star: push ds sub ax, ax push ax mov ax, datarea mov ds, ax call input; 十六进制输入 ;................ 输出回车换行.............. mov ah,02h mov dl,0dh int 21h mov ah,02h mov dl,0ah int 21h ;............................................ call output; 二进制输出 ret main endp

input proc near mov cx, 4 mov bx, 0 mov si, 0 lop: mov ah, 01h int 21h sub al, 30h jl exit cmp al , 9d ja great mov num[bx], al jmp next great: sub al, 07h cmp al, 15h ja exit mov num[bx], al next: inc bx; loop lop exit: ret input endp output proc near mov bx, 0 mov cl, 4 mov si, 0 lop1: sal bx, cl mov ax, 000fh and ax, num[si] add bx, ax inc si cmp si, 4 jl lop1 mov cx, 16 lop2: rol bx, 1 mov dl, 0 adc dl, 30h mov ah, 02h int 21h loop lop2 ret output endp code ends end star

实验结果: 1. 保存输入 2. 输出结果 结果分析: 1、程序能正确地以二进制输出用户输入数据 2、通过预编译程序,大大简化了主程序,使主程序更具可读性 3、加深了对十六进制到十进制再到二进制之间的转换的理解 4、这次实验学习了子程序的编写以及主程序和子程序的调用,不同模块间程序的调用和调试方法,实践的过程中加深了对子程序调用的代码的使用。

本文来源:http://www.scfx8.com/gongzuozongjie/73993.html