微机原理与汇编语言试验循环程序设计试验_第1页
微机原理与汇编语言试验循环程序设计试验_第2页
微机原理与汇编语言试验循环程序设计试验_第3页
微机原理与汇编语言试验循环程序设计试验_第4页
微机原理与汇编语言试验循环程序设计试验_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、II转化为二进制微机原 理与汇编语言实 验 报 告姓名x x x学号xxxxxx专业班级计科x班课程名称微机原理与汇编语言实验日期2014.10.22实验名称循环程序设计实验成绩一、实验目的1、掌握循环程序的设计方法。2、掌握比较指令、转移指令和循环指令的使用方法。3、进一步掌握调试工具的使用方法。二、实验内容1、实验原理(1) 键盘输入的十进制数如368在计算机中是以 33H,36H, 38H形式存放的,如何将它们转换为一个二进制数101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题(2) 累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数2、实

2、验步骤(1) 流程图(2) 实验源码.model small.stack;定义堆栈段.data;定义数据段inf1 db "Please in put a nu mber inf2 db Oah, Odh, "1+2+$" ibuf db 7, 0, 6 dup(0)obuf db 6 dup(0).codestart: mov ax, data mov ds, axmov dx, offset inf1;将屏幕输入的十进制数(存放于ibuf) 数存储于ax中mov ah, 09hint 21hmov dx, offset ibufmov ah, 0Ahint 2

3、1hmov cl, ibuf+1mov ch, 0mov si, offset ibuf+2mov ax, 0Ioop1: mov dx, 10mul dxand byte ptr si, 0Fhadd al, siadc ah, 0 inc si loop looplmov cx, ax;mov ax, 0mov bx, 1loop2: add ax, bx inc bx loop loop2mov di, offset obuf+6 ; 存于obufmov byte ptr di, '$' mov bx, 10Ioop3: mov dx, 0div bx add dl, 3

4、0h dec di mov di, dl or ax, ax jnz loop3 dec di mov di,'='mov dx, offset inf2 ; mov ah, 09h int 21hmov cl, ibuf+1 ;mov ch, 0mov si, offset ibuf+2 loop4: mov dl, si add dl, 30h inc simov ah, 02h int 21h loop loop4 mov dx, di mov ah, 09h int 21h计算 1+2+3+.+n将ax中的二进制数转换为十进制数并以ascii的形式结果输出显示nmov

5、ax, 4cOOh int 21hend start实验习题1源码:;multi-segme nt executable file template.model small;定义程序的存储模式(small表示小型模式).stack;定义堆栈段.data;定义数据段除了六位数字外还要有一个=号infl db Oah, Odh, "1+2+$ obufl db 6 dup(O) obuf2 db 7 dup(O);.codestart: mov ax, data mov ds, axmov dx, offset inf1 mov ah, 09hint 21h输出1+2+mov ax, 0

6、计算 1+2+3+.+nmov bx, 1 Ioop1: add ax, bxinc bxcmp ax, 60000jbe loop1push ax push bx pop cxmov di, offset obuf1+5;将cx二进制数转换为十进制数并以ascii的形式存于obuf1mov byte ptr di, '$'mov ax, cxmov bx, 10loop2: mov dx, 0div bxadd dl, 30hdec dimov di, dlor ax, axjnz loop2mov dx, di;输出 nmov ah, 09hint 21hpop axmov

7、 di, offset obuf2+6;将ax中的二进制数转换为十进制数并以ascii的形式存于obuf2mov byte ptr di, '$'mov bx, 10loop3: mov dx, 0div bxadd dl, 30hdec dimov di, dlor ax, ax jnz Ioop3 dec dimov di,'='mov dx, di mov ah, 09h int 21h输出结果mov ax, 4cOOh int 21hend start实验习题2源码:;multi-segme nt executable file template.mod

8、el small;定义程序的存储模式(small表示小型模式).stack;定义堆栈段.data;定义数据段inf1 db 'Please in put six nu m:', 0ah, 0dh, '$' inf2 db 'sum:$'obufO db 0ah, 0dh, '$'ibuf db 5, 0, 4 dup(0)obuf db 6 dup(0).codestart: mov ax, data mov ds, axmov dx, offset inf1 ;输出提示信息mov ah, 09hint 21hmov bx, 6;

9、loop1: mov dx, offset ibufmov ah, 0Ahint 21hmov cl, ibuf+1mov ch, 0mov si, offset ibuf+2设置外层循环次数设置内层循环次数mov ax, 0loop2: mov dx, 10 ;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax中mul dxand byte ptrsi, 0Fh add al, siadc ah, 0inc siloop loop2push ax;mov dx, offset obuf0将结果入栈保存 回车换行mov ah, 09hint 21hdec bx cmp bx, 0

10、jnz looplmov cx, 6mov ax, 0 loop3: pop bxadd ax, bxloop loop3 mov di, offset obuf+5;将ax中的二进制数转换为十进制数并以ascii的形式存于obufmov byte ptr di, '$'mov bx, 10Ioop4: mov dx, 0div bxadd dl, 30hdec dimov di, dlor ax, axjnz loop4mov dx, offset inf2 ;输出提示信息mov ah, 09hint 21hmov dx, dimov ah, 09hint 21hmov ax

11、, 4c00hint 21hend start实验习题3源码:;multi-segme nt executable file template.model small ;定义程序的存储模式(small表示小型模式).stack;定义堆栈段.data;定义数据段inf db "Please in put a num(0-65535):$"inf2 db 0ah, 0dh, "The num of 1:$"ibuf db 6, 0, 5 dup(0)obuf db 6 dup(0).codestart: mov ax, datamov ds, axmov e

12、s, axmov ah, 09h;输出提示信息 Please in put a num:mov dx, offset infint 21hmov ah, 0Ah ;接收一个无符号十进制整数(小于 65536)mov dx, offset ibufint 21h mov ax, 0ax中mov cl, ibuf+1;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于mov ch, 0mov si, offset ibuf+2loop1: mov dx, 10mul dxand byte ptrsi, 0Fhadd al, siadc ah, 0inc siloop loop1mov bx

13、, 0loop2: shr ax, 1adc bx, 0cmp ax, 0jnz loop2mov ax, bxmov di, offset obuf+5;将ax中的二进制数转换为十进制数并以ascii的形式存于obufmov byte ptr di, '$'mov bx, 10loop3: mov dx, 0div bxadd dl, 30hdec dimov di, dlor ax, axjnz loop3mov ah, 09h;输出提示信息 The num of 1:mov dx, offset inf2int 21hmov ah, 09h;将统计结果在屏幕上显示出来mo

14、v dx, diint 21hmov ax, 4c00hint 21hend start实验习题4源码:;multi-segme nt executable file template.model small;定义程序的存储模式(small表示小型模式).stack;定义堆栈段.data;定义数据段N equ 5ibuf db 4, 0, 3 dup(O)inf1 db 'Please in put N nu m(0-255):', Oah, 0dh, '$'inf2 db 'Sort:', 0ah, 0dh, '$'buf db

15、 N dup(0)obuf2 db 4 dup(0)obuf db 0ah, 0dh, '$'.codestart: mov ax, datamov ds, axmov dx, offset inf1 ;输出提示信息mov ah, 09hint 21hmov di, offset buf mov bx, N;loopl: mov dx, offset ibufmov ah, OAhint 21hmov cl, ibuf+1mov ch, 0mov si, offset ibuf+2设置外层循环次数设置内层循环次数mov ax, 0loop2: mov dx, 10 ;将屏幕输入

16、的十进制数(存放于ibuf)转化为二进制数存储于mul dxand byte ptrsi, OFhadd al, siinc siloop loop2mov di, alinc dimov dx, offset obuf ;回车换行mov ah, 09hint 21hdec bxcmp bx, 0jnz looplax中mov bx, N-1比较大小mov ex, bxmov dx, bxmov di, offset bufIoop3: mov si, dimov al, diine siloop4: emp si, aljbe Ioop5mov al, simov ah, dimov si,

17、 ahmov di, alloop5: inc siloop loop4dee dxmov ex, dxine didee bxemp bx, 0jne loop3mov dx, offset inf2 ;输出提示信息mov ah, 09hint 21h;结果输出mov ex, Nmov si, offset bufloop6: mov di, offset obuf2+3;将buf中的二进制数转换为十进制数并以aseii的形式存于obuf2,并输出mov byte ptr di, '$'mov bx, 10mov al, simov ah, 0loop7: mov dx, 0

18、div bxadd dl, 30hdee dimov di, dlor ax, axjnz loop7mov dx, dimov ah, 09hint 21hmov dx, offset obufmov ah, 09hint 21hine siloop loop6mov ax, 4cOOhint 21hend startPlease i nput a nunber(1_627T:1001+2+ 100=5050(2)实验习题1SEI emulator tereen (80x25 chars)1 + 2+346=60031程序流程图:(3 )实验习题2e-匚uuoJasole-nE4>亠I

19、 +OE=Lly AIJdu二*C-EEE4P srKOsumajgQ-nbullJnn0HHWrrnr-lr-lrlr>.£卜E>IIblEIINlU|T|O1 Q»1knPU-00寸 61:IE呈1+En匸X -M-Hnd 匚flCXJAfggicxir-ooi_nr-o-> IgwJagL-lEE-nEE f三、实验总结1 )通过本次实验我掌握循环程序的设计方法,掌握比较指令、转移指令和循环指令的使用方法,进 一步掌握了调试工具的使用方法。2) 在实验过程中我也遇到过许多困难,我觉的最大的困难时汇编难于调试,特别是代码写的很多的 时候,某处的错误很难能够查的出来。我的办法是每写一段程序就调试一下是否是正确的,比如说本 次的实验大致可分为五个功能片段,第一个是输出信息,第二个是接受屏幕上的数字串,第三个是将 数字串转化为二进制数,第四是累加求和,第五是将二进制数转化为十进制数形式的数字串。可以用 分开来调试的方法,通过一条功能后在进行下一条功能的书写与调试工作。另外书写注释也是非常重 要的,只有这样才能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论