微机原理||各种进制数显示程序

简介: 微机原理||各种进制数显示程序

[实验目的]

  1. 熟悉8086宏汇编实验环境,包括编辑(NotePad)、汇编MASM、链接LINK、调试debug32、运行等开发环境的使用,学习简单程序调试运行。
  2. 熟悉微机原理,掌握8086/8088CPU内部结构,熟悉8086/8088指令系统。
  3. 熟练掌握汇编语言程序设计方法,通过本实验初步培养计算机逻辑解题能力,熟练掌握数制及其转换规则;掌握基本输入输出中断调用的方法。

[实验要求]

1.在规定期限独立完成实验内容

2.提交实验报告(电子版)

3.提交相应源程序文件

[实验内容]

  1. 按要求编写以下程序:各种进制数显示程序
  2. 1.在屏幕上显示输出一个二进制数
(1)输出一个二进制数
data    segment
dat1    dw      1024h
data    ends
 
code    segment
        assume cs:code,ds:data
begin:
        mov ax,data
        mov ds,ax
 
        mov bx,dat1
        mov cx,16
 
t:      rol bx,1
        mov dl,bl
        and dl,01h
        add dl,30h
        mov ah,2
        int 21h
        loop t
 
        mov ah,4ch
        int 21h
code ends
     end begin
  1. 2.在屏幕上显示输出一个十六进制数
(2)输出一个十六进制数
data    segment
dat1    dw     1024h
data    ends
 
code    segment
        assume cs:code,ds:data
begin:
        mov ax,data
        mov ds,ax
 
        mov bx,dat1
        mov cx,4
 
t:      push cx
        mov cl,4
        rol bx,cl
        pop cx
        mov dl,bl
        and dl,0fh
        add dl,30h
        cmp dl,39h
        jbe print
        add dl,7
print:  mov ah,2
        int 21h
        loop t
 
        mov ah,4ch
        int 21h
code ends
     end begin
  1. 3.在屏幕上显示输出一个十进制数(无符号数显示)
(3)输出十进制
data    segment
dat1    dw     03fffh
data    ends
 
code    segment
        assume cs:code,ds:data
begin:
        mov ax,data
        mov ds,ax
 
        mov bx,dat1
        mov cx,10000
        call dec_div
        mov cx,1000
        call dec_div
        mov cx,100
        call dec_div
        mov cx,10
        call dec_div
        mov cx,1
        call dec_div
        
        mov ah,4ch
        int 21h
 
dec_div proc
        mov dx,0
        mov ax,bx
        div cx
        mov bx,dx
        mov dl,al
        add dl,30h
        mov ah,2
        int 21h
        ret
dec_div endp
code ends
     end begin
  1. 4.在屏幕上将一个数以二进制、十六进制、十进制(无符号数)分别显示输出
4)以二进制、十六进制、十进制(无符号数)分别显示输出
data    segment
dat1    dw     0ffffh
data    ends
 
code    segment
        assume cs:code,ds:data
begin:
        mov ax,data
        mov ds,ax
 
    call bin_show
    call hex_show
    call dec_show
 
    mov ah,4ch
        int 21h
 
hex_show proc
        mov bx,dat1
        mov cx,4
 
t2:     push cx
        mov cl,4
        rol bx,cl
        pop cx
        mov dl,bl
        and dl,0fh
        add dl,30h
        cmp dl,39h
        jbe print
        add dl,7
print:  mov ah,2
        int 21h
        loop t2
    ret
hex_show endp
 
bin_show proc
        mov bx,dat1
        mov cx,16
 
t1:     rol bx,1
        mov dl,bl
        and dl,01h
        add dl,30h
        mov ah,2
        int 21h
        loop t1
    ret
bin_show endp
 
dec_show proc
        mov bx,dat1
        mov cx,10000
        call dec_div
        mov cx,1000
        call dec_div
        mov cx,100
        call dec_div
        mov cx,10
        call dec_div
        mov cx,1
        call dec_div
    ret
dec_show endp
        
    
 
dec_div proc
        mov dx,0
        mov ax,bx
        div cx
        mov bx,dx
        mov dl,al
        add dl,30h
        mov ah,2
        int 21h
        ret
dec_div endp
code ends
     end begin
  1. .同④,分行显示
5)以二进制、十六进制、十进制(无符号数)分行显示输出
data    segment
dat1    dw     0ffffh
data    ends
 
code    segment
        assume cs:code,ds:data
begin:
        mov ax,data
        mov ds,ax
 
    call bin_show
    call crlf
 
    call hex_show
    call crlf
 
    call dec_show
      call crlf
 
    mov ah,4ch
        int 21h
 
hex_show proc
        mov bx,dat1
        mov cx,4
 
t2:     push cx
        mov cl,4
        rol bx,cl
        pop cx
        mov dl,bl
        and dl,0fh
        add dl,30h
        cmp dl,39h
        jbe print
        add dl,7
print:  mov ah,2
        int 21h
        loop t2
    ret
hex_show endp
 
bin_show proc
        mov bx,dat1
        mov cx,16
 
t1:     rol bx,1
        mov dl,bl
        and dl,01h
        add dl,30h
        mov ah,2
        int 21h
        loop t1
    ret
bin_show endp
 
dec_show proc
        mov bx,dat1
        mov cx,10000
        call dec_div
        mov cx,1000
        call dec_div
        mov cx,100
        call dec_div
        mov cx,10
        call dec_div
        mov cx,1
        call dec_div
    ret
dec_show endp
        
    
 
dec_div proc
        mov dx,0
        mov ax,bx
        div cx
        mov bx,dx
        mov dl,al
        add dl,30h
        mov ah,2
        int 21h
        ret
dec_div endp
 
crlf  proc
        mov dl,0dh
    mov ah,2
    int 21h
    mov dl,0ah
    mov ah,2
    int 21h
    ret
crlf  endp
code ends
     end begin
  1. 6. 在屏幕上将一个数以二进制、十六进制、十进制(无符号数)分别显示输出,并统计其中二进制形式中“1”的个数并显示
6)以二进制、十六进制、十进制(无符号数)分别显示输出,并统计其中二进制形式中“1”的个数并显示
data    segment
dat1    dw     03fffh
cn      dw    ?
data    ends
 
code    segment
        assume cs:code,ds:data
begin:
        mov ax,data
        mov ds,ax
 
    mov bx,dat1
    call bin_show
    call crlf
 
    mov bx,dat1
    call hex_show
    call crlf
 
    mov bx,dat1
    call dec_show
      call crlf
 
    call count1
    mov bx,cn
    call dec_show
 
    mov ah,4ch
        int 21h
 
hex_show proc
        mov cx,4
 
t2:     push cx
        mov cl,4
        rol bx,cl
        pop cx
        mov dl,bl
        and dl,0fh
        add dl,30h
        cmp dl,39h
        jbe print
        add dl,7
print:  mov ah,2
        int 21h
        loop t2
    ret
hex_show endp
 
bin_show proc
        mov cx,16
 
t1:     rol bx,1
        mov dl,bl
        and dl,01h
        add dl,30h
        mov ah,2
        int 21h
        loop t1
    ret
bin_show endp
 
dec_show proc
        mov cx,10000
        call dec_div
        mov cx,1000
        call dec_div
        mov cx,100
        call dec_div
        mov cx,10
        call dec_div
        mov cx,1
        call dec_div
    ret
dec_show endp
        
    
 
dec_div proc
        mov dx,0
        mov ax,bx
        div cx
        mov bx,dx
        mov dl,al
        add dl,30h
        mov ah,2
        int 21h
        ret
dec_div endp
 
count1  proc
    mov dx,0
    mov bx,dat1
    mov cx,16
t:      shl bx,1
    jnc next
    inc dx
next:   loop t
    mov cn,dx
    ret
count1  endp
 
crlf  proc
        mov dl,0dh
    mov ah,2
    int 21h
    mov dl,0ah
    mov ah,2
    int 21h
    ret
crlf  endp
code ends
     end begin

[运行结果]

相关文章
|
安全 网络协议 网络安全
http https socket通讯详解?
http https socket通讯详解?
266 0
|
11月前
|
自然语言处理
3500机械保护系统Bently 3500/14检测模块
本特利3500系列机械保护系统,配以BENTLY_MANUALS DVD,提供多语言手册与数据表,涵盖安装、操作、维护指导及规格订购信息。3500/53模块专为机械超速检测设计,具备高可靠性、易集成和热插拔功能,确保在恶劣环境下的稳定运行,是机械保护的理想选择。
124 0
|
7月前
|
算法 API 数据安全/隐私保护
揭秘淘宝拍立淘API:开启智能商品搜索新时代
拍立淘API是淘宝提供的图片搜索工具接口,允许开发者将商品图片搜索功能集成到自己的应用中。通过调用API,上传图片即可获取相似商品列表及其关键信息(如标题、价格等)。实现该功能需完成注册认证、创建应用、申请权限等准备工作,并借助Python等语言编写代码调用API。同时,注意调用频率限制、图片格式要求及数据安全等问题,确保功能稳定与兼容。这一技术可为用户提供便捷高效的购物体验,适用于电商平台及图片处理软件等多种场景。
|
11月前
|
JavaScript 数据库 Docker
一个有用的docker entrypoint脚本的范例
通过这个 Entrypoint 脚本,您可以确保在 Docker 容器启动时执行必要的初始化步骤,并且容器可以根据不同的运行时环境进行相应的配置和操作。这个范例展示了如何编写一个灵活且功能强大的 Entrypoint 脚本,使您的 Docker 容器更加可靠和易于管理。
269 3
长上下文能力只是吹牛?最强GPT-4o正确率仅55.8%,开源模型不如瞎蒙
【8月更文挑战第10天】新研究NoCha挑战显示,即使是顶级的大型语言模型GPT-4o,在处理长篇幅文本时正确率仅55.8%,低于人类直观水平。该挑战基于近作英文小说,检验模型对整本书信息的理解与推理能力。结果显示,模型在全局推理上的表现不佳,倾向于依赖局部信息而非整体上下文,尤其是在复杂推理需求高的科幻小说上表现更弱。这一发现揭示了当前模型在处理长上下文任务上的局限性。论文链接: [https://arxiv.org/pdf/2406.16264](https://arxiv.org/pdf/2406.16264)。
281 65
|
监控 网络协议 Java
Java TCP长连接详解:实现稳定、高效的网络通信
Java TCP长连接详解:实现稳定、高效的网络通信
|
Python
Python办公自动化:提取pdf文件中的图片
Python办公自动化:提取pdf文件中的图片
240 0
|
分布式计算 Hadoop 大数据
数据工程师必须掌握的7个大数据实战项目
值得收藏,数据工程师必须掌握的7个大数据实战项目
8077 1
数据工程师必须掌握的7个大数据实战项目
|
前端开发 安全 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
【7月更文挑战第28天】在Android开发领域,五大框架如星辰般指引方向,加速进程,提升应用品质。1. **Retrofit**:Square公司的类型安全HTTP客户端,使网络请求变得优雅简洁。2. **Room**:Google推荐的ORM库,简化SQLite数据库访问。3. **MVVM**:一种架构模式,提高代码可维护性和扩展性。4. **Dagger 2**:依赖注入框架,减少样板代码,以声明方式管理依赖。5. **Jetpack Compose**:全新的UI工具包,采用声明式UI编程,让UI开发更直观高效。掌握这些框架,能有效应对Android开发挑战,助力打造爆款应用。
435 0
|
Go Android开发
flutter调用go
flutter调用go