微机原理与接口技术实验:汇编综合练习

举报
海轰Pro 发表于 2021/08/05 23:14:56 2021/08/05
【摘要】 学生实验报告 实验课名称:微机原理与接口技术 实验项目名称:汇编综合练习 实验名称:汇编综合练习 一、 实验目的 利用所学汇编知识,编写程序,实现输入两个二位十六进制数,输出其十进制值 二、实验内容 从键盘上输入两个二位十六进制数,利用汇编程序,输出其二进制表示的值 三、实验仪器与设备 计算机,DOSbox虚拟机,外接设备 四、实验原理 汇编语言的基础...

学生实验报告

实验课名称:微机原理与接口技术
实验项目名称:汇编综合练习
实验名称:汇编综合练习

一、 实验目的

利用所学汇编知识,编写程序,实现输入两个二位十六进制数,输出其十进制值

二、实验内容

从键盘上输入两个二位十六进制数,利用汇编程序,输出其二进制表示的值

三、实验仪器与设备

计算机,DOSbox虚拟机,外接设备

四、实验原理

汇编语言的基础知识

五、实验过程与代码

stack segment
db 10 dup(?)
stack ends

data segment
string_1 db 0ah,0dh,'please input a num: $'
string_2 db 0ah,0dh,'the result is: $'
result db 0,0,0
data ends

code segment
assume cs:code,ss:stack,ds:data
start:
mov ax,data
mov ds,ax

mov cx,2

begin:
push cx
lea dx,string_1
mov ah,09h
int 21h
mov cx,2
xor bl,bl
input:
push cx
mov cl,4
mov ah,01h
int 21h
shl bl,cl
sub al,30h
cmp al,10
jb shuzi
sub al,27h
shuzi:
add bl,al
pop cx
loop input
mov bh,0
mov ax,bx

mov bl,10
mov cx,3
mov si,offset result+2

change:
div bl
mov [si],ah
dec si
mov ah,0
loop change

lea dx,string_2
mov ah,09h
int 21h

mov cx,3
mov si,offset result
output:
mov dl,[si]
add dl,30h
mov ah,02h
int 21h
inc si
loop output

pop cx
loop begin
mov ax,4c00h
int 21h

code ends
end start

  
 

六、实验结果与分析

        通过本次的汇编实验,对所学汇编知识有了更深的理解:loop用于循环,通过cx值确定循环次数,特别注意需要时刻对cx值进行保护,使用div时,特别注意被除数是16位还是32位,这对之后余数、商存放的位置有影响、dos的2号功能使用后,会把输出字符的ASCII值放入al中…计算机中存储数据的格式是以二进制存储的,debug汇编程序的时候,看到的都是十六进制,对于进制转换,我们可以利用AAA或者循环除进制数即可。总的说来,做完这个实验后,对汇编语言有了更加深刻的理解,希望后面学的更好!

文章来源: haihong.blog.csdn.net,作者:海轰Pro,版权归原作者所有,如需转载,请联系作者。

原文链接:haihong.blog.csdn.net/article/details/113741439

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。