ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:118.48KB ,
资源ID:8178605      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8178605.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编程序baogao.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编程序baogao.docx

1、汇编程序汇编程序 baogao 院 系:计算机科学学院 专 业:计算机科学与技术 年 级:2010级 课程名称:汇编语言程序设计报告 学 号:10061065 姓 名:徐丽 指导教师:雷建云 2012年 6 月 21 日 年级 2010级 班号 一大班(3)小班 学号 10061065 专业 计算机科学与技术 姓名 徐丽 实验名称 顺序程序设计 实验 类型 设计型 综合型 创新型 实验目的或要1.题目:华氏温度转换为摄氏温度 2.实验要求:程序从键盘接收用户键入的华氏温度值,根据转换公式运算后,先是对应的摄氏温度值。在用户输入和显示转换结果之前都要有相应的提示。3.提示:首先在数据段中定义提示

2、信息,华氏温度值变量 TemperatureF和摄氏温度值变量 TemperatureC。当用户输入华氏温度值之后,进行运算,然后显示计算结果。求4.转换公式:C=(5/9)*(F-32);其中 F是华氏温度,C 是摄氏温度值。实验原理(算法流程);program to convert Fahrenheit temperature to Celsius;uses formula(F-32)*5/9;author:R.Detmer;date:revised 9/97.386.MODEL FLAT ExitProcess PROTO NEAR32 stdcall,dwExitCode:DWORD

3、INCLUDE io.h cr EQU 0dh;carriage return character Lf EQU 0ah;linefeed character.STACK 4096;reserve 4096-byte stack.DATA;reserve storage for data Prompt1 BYTE CR,LF,This program will convert a Fahrenheit BYTE temperature to the Celsius scale,cr,Lf,Lf BYTE Enter Fahrenheit temperature:,0 Value BYTE 6

4、DUP(?)Answer BYTE CR,LF,The temperature is Temperature BYTE 6 DUP(?)BYTE Celsius,cr,Lf,0 .CODE;start of main program code _start:Prompt:output Prompt1;prompt for Fahrenheit temperature input Value,6;read ASCII characters atoi Value;convert to integer sub ax,32 mov bx,5 imul bx add ax,4 mov bl,9 idiv

5、 bl mov ah,0 itoa Temperature,ax;convert to ASCII characters output Answer;output label and result PUBLIC _start;make entry point public END (写不完时,可另加附页。)实 验 结 果 分 析 及 心 得 体 会 心得体会:通过写这个程序,我对汇编语言这门学科有了一个大致的了解:1.确立了一个整体思想:掌握了汇编语言程序设计的基本步骤,分析问题,确立算法,然后根据算法流程选择合适的指令来编制汇编源程序。2.熟练掌握了一些简单的基本指令的操作,如加减乘除法的指

6、令。3.对程序的汇编,链接和运行也有了一个清晰地认识。4.对其中的目的操作数和源操作数也初步有了一定的了解。成 绩 教师签名:评 定 年 月 日 年级 2010级 班号 一大班(3)小班 学号 10061065 专业 计算机科学与技术 姓名 徐丽 实验名称 分支程序设计 实验 类型 设计型 综合型 创新型 实验目的或要求1.题目:计算立方值 2.实验要求:从键盘输入 0到 9中的任一个自然数 x,求其立方值。若输 入的字符不是 0至 9 之间的数字,则显示错误信息,并要求重新输入。要 求有信息提示用户按照要求输入字符串,三类字符的个数分别在三行显 示,并指明是哪类字符。实验原理(算法流;Exa

7、mple assembly language program-power;Author:R.Detmer;Date:revised 7/97.386.MODEL FLAT ExitProcess PROTO NEAR32 stdcall,dwExitCode:DWORD INCLUDE io.h;header file for input/output cr EQU 0dh;carriage return character 程)Lf EQU 0ah;line feed.STACK 4096;reserve 4096-byte stack.DATA prompt1 byte cr,lf,ple

8、ase enter a number:,0 value byte 10 dup(?)answer byte cr,lf,the power is power DWORD 6 DUP(?)BYTE CR,LF,0 prompt2 byte error,please input a number again:,0.CODE _start:prompt:do:output prompt1 input value,10 atoi value cmp eax,0 jl enddo cmp eax,9 ja enddo mov ebx,eax imul ebx,eax imul ebx,eax dtoa

9、power,ebx output answer jmp exit enddo:output prompt2 jmp do exit:INVOKE Exitprocess,0 PUBLIC _start END (写不完时,可另加附页。)实 验 结 果 分 析 及 心 得 体 会 心得体会:1.掌握了分支程序设计的原理和方法,掌握了各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧。2.对条件转移和无条件转移指令 jmp 的运用有了更深层次的了解。3.熟练掌握了其中的比较指令,if结构以及循环结构的实现。成 绩 评 定 教师签名:年 月 日 年级 2010级 班号 一大班(3)小班 学号

10、 10061065 专业 计算机科学 姓名 徐丽 与技术 实验名称 循环程序设计 实验 类型 设计型 综合型 创新型 实验目的或要求1.题目:显示九九乘法表 2.实验要求:以 9行 9 列的形式显示九九乘法表,显示下三角格式。3.提示:(1)建立一个双重循环,外循环控制显示各行,内循环显示每行中的各列,其中外循环循环次数为 9,内循环循环次数等于当前的行数。(2)每次显示项可以由以下几部分组成:当前行数值”*”当前列数值“=”当前行数值*当前列数值 每行所有项显示完成后显示空行串(回车符和换行数)。实验原理(算法流程).386.model flat ExitProcess proto near

11、32 stdcall,dwexitcode:dword include io.h cr equ 0dh Lf equ 0ah bs equ 08h.data prompt1 byte 这个程序用于输出 9*9 乘法表,Lf,Lf,0 changeLine byte Lf,Lf,0 num1 byte 4 dup(?)sign1 byte cr,Lf,*byte 0 num2 byte 4 dup(?)sign2 byte cr,Lf,=byte 0 result byte 4 dup(?)byte cr,Lf,0 temp word 0.code _start:mov ax,0;被乘数 mov

12、 bx,0;乘数 mov cx,0;结果 mov dx,0;循环计数 mov temp,0;计数备份 whileFirst:;输入被乘数 output changeLine;换行 inc ax inc dx mov temp,dx;用 temp临时存放 dx,因为执行 mul 时,dx 会改变 cmp ax,9 jg EndPro ;输出完毕,结束程序 mov bx,0 whileSecond:inc bx cmp bx,dx ;判断该行是否输出完毕 jg whileFirst itoa num1,ax itoa num2,bx mul bx itoa result,ax mov dx,tem

13、p;还原 dx (写不完时,可另加附页。)实 验 结 果 分 析 及 心 得 output num13 ;输出算式 output num25 ;因为被乘数只有 1位 output result4 jmp whileSecond EndPro:invoke ExitProcess,0 public _start end 体 会 心得体会:1.掌握循环程序设计的原理和方法,循环程序结构的形式和常用循环结构的控制方法和技巧。2.熟练运用条件转移指令,比较指令以及 if结构。3.熟练运用基本的乘法指令,inc加一指令。成 绩 评 定 教师签名:年 月 日 年级 2010级 班号 一大班(3)小班 学号

14、 10061065 专业 计算机科学与技术 姓名 徐丽 实验名称 子程序设计 实验 类型 设计型 综合型 创新型 实1.题目:找出 100 到 200 内所有的素数 验目的或要求2.实验要求:将 100 到 200 内所有的素数找出来并显示值,要求每行显示5 个素数。3.提示:素数的判定方法前面已经给出,要求素数的判定算法用子程序来实现,子程序在判定数是否为素数后有不同的返回参数。实验原理(算法流程).386.MODEL FLAT ExitProcess PROTO NEAR32 stdcall,dwExitCode:DWORD INCLUDE io.h cr EQU 0dh Lf EQU 0

15、ah.STACK 4096.DATA pthh BYTE cr,Lf,0 string BYTE 13 DUP(0)ptkg BYTE ,0 ptstart BYTE,0 ptend BYTE ,0;pausept BYTE cr,Lf,Lf,Lf BYTE-BYTE cr,Lf BYTE Press Enter to Exit.BYTE cr,Lf,0.CODE NUMBERX PROC NEAR32;number in bx;number out bx(1 YES,0 NO);cx=i;NUMBERX_for_start:push eax;save eax mov eax,0 push e

16、cx;save ecx mov ecx,0 push edx;save edx mov edx,0 NUMBERX_for_init:mov cx,2 NUMBERX_for_check:cmp cx,bx je NUMBERX_for_end NUMBERX_for_calc:mov dx,0 mov ax,bx div cx cmp dx,0 je _return0 jmp NUMBERX_for_add _return0:mov bx,0;return 0 jmp NUMBERX_restore NUMBERX_for_add:inc cx jmp NUMBERX_for_check N

17、UMBERX_for_end:mov bx,1;return 1;NUMBERX_restore:(写不完时,可另加附页。)实验原理(算法流程)pop edx;restore edx pop ecx;restore ecx pop eax;restore eax ret NUMBERX ENDP DTOAX PROC NEAR32 dtoaxfor_start:dtoaxfor_init:push eax;save eax push ebx;save ebx push ecx;save ecx push edx;save edx mov eax,0;al=i lea edx,string dt

18、oaxfor_check:cmp eax,10 jg dtoaxfor_endno dtoaxfor_calc:mov ebx,edx add ebx,eax cmp BYTE PTR ebx,20h jne dtoaxfor_endok dtoaxfor_add:inc eax jmp dtoaxfor_check dtoaxfor_endok:cmp eax,0 je dtoaxfor_end dtoaxmov_start:dtoaxmov_init:mov ecx,0;eax ecx dtoaxmov_check:cmp eax,11 je dtoaxmov_end dtoaxmov_c

19、alc:mov ebx,edx add ebx,eax push eax;save t eax mov eax,edx add eax,ecx push ecx;save t ecx pop eax;restore eax dtoaxmov_add:inc eax inc ecx jmp dtoaxmov_check dtoaxmov_end:mov ebx,edx add ebx,ecx mov BYTE PTR ebx,0 (写不完时,可另加附页。)实验原理(算法流程)jmp dtoaxfor_end dtoaxfor_endno:dtoaxfor_end:pop edx pop ecx

20、pop ebx pop eax ret DTOAX ENDP _start:;eax=i;ecx=printf 5 n;edx=count for_start:for_init:mov eax,100 mov ecx,1 mov edx,0 for_check:cmp eax,200 jg for_end for_calc:mov bx,ax call NUMBERX cmp bx,0 je _jmpprintf _printfit:inc edx inc ecx dtoa string,edx output ptstart output string+9 output ptend dtoa

21、string,eax call DTOAX output string output ptkg cmp ecx,5 jle _jmpprintfhh _printfhh:output pthh mov ecx,1 _jmpprintfhh:_jmpprintf:for_add:inc eax jmp for_check for_end:output pausept input string,10 INVOKE ExitProcess,0 PUBLIC _start END (写不完时,可另加附页。)实 验 结 果 分 析 及 心 得 体 会 心得体会:1.掌握了子程序设计的原理和方法,对子程序

22、的调用过程以及堆栈的操作和参数的局部概念得到了加强。2.对过程体,调用和返回这块有了更清晰的认识,熟练掌握了汇编语言中的一个要点。3.对寄存器,存储器,堆栈的知识点再次运用达到温习巩固的效用。成 绩 评 定 教师签名:年 月 日 年级 2010级 班号 一大班(3)小班 学号 10061065 专业 计算机科学 姓名 徐丽 与技术 实验名称 串操作指令的使用 实验 类型 设计型 综合型 创新型 实验目的或要求1.题目:设有一字符串存放在以 STRING为首址的数据区中,编一程序找出其中的”.”字符,并将其存放地址输出。2.实验要求:输入字符串,查找字符”.”所在的位置,并输出。3.提示:(1)

23、如果字符串中不存在”.”字符则应该输出“notfound”。(2)如果字符串中存在多个”.”字符,则应试着输出第一个”.”的位置,然后设法输出所有的”.”位置。实验原理(算法流程).386.MODEL FLAT xitProcess PROTO NEAR32 stdcall,dwExitCode:DWORD INCLUDE io.h cr EQU 0dh Lf EQU 0ah .STACK 4096 .DATA prompt BYTE cr,lf,please enter a string:,0 string BYTE 40 DUP(?)label1 BYTE cr,lf,The title

24、is:sum BYTE 11 DUP(?).CODE strlen PROC NEAR32 push ebp mov ebp,esp pushf mov eax,0 mov ebx,ebp+8 whilechar:cmp BYTE PTR ebx,0 je endwhilechar inc eax inc ebx jmp whilechar endwhilechar:popf pop ebp ret 4 strlen ENDP _start:output prompt input string,40 lea eax,string push eax call strlen dtoa sum,ea

25、x output label1 INVOKE ExitProcess,0 PUBLIC _start END (写不完时,可另加附页。)实 验 结 果 分 析 及 心 得 体 会 心得体会:1.掌握了串操作指令的用法。2.对 DF标识位以及源串,目的串的存储和改变有了更进一步的认识。3.加强了对循环结构的实现内容的巩固。4.学会了对栈的运用。成 绩 评 定 教师签名:年 月 日 年级 2010级 班号 一大班(3)小班 学号 10061065 专业 计算机科学与技术 姓名 徐丽 实验名称 位运算指令的使用 实验 类型 设计型 综合型 创新型 实验目的或要求1 题目:使用位操作指令实现双字长的数

26、*4 2.实验要求:已知 DX 中存放着双字长数的高 16位,AX中存放着双字长数的低 16位,先要求将整个双字长数*4,即左移 2位。3.提示:AX 中的高 2 位将移入 DX中并作为低 2 位,AX中的低 2 位补 0.实验原理(;Example assembly language program-adds two numbers;Author:R.Detmer;Date:revised 7/97.386.MODEL FLAT 算法流程)ExitProcess PROTO NEAR32 stdcall,dwExitCode:DWORD INCLUDE io.h;header file fo

27、r input/output cr EQU 0dh;carriage return character Lf EQU 0ah;line feed.STACK 4096;reserve 4096-byte stack.DATA;reserve storage for data string BYTE 20 DUP(?)number WORD?inputstr BYTE cr,Lf,please input a low 16 number:,0 inputstr1 BYTE cr,Lf,please input a high 16 number:,0 prompt BYTE cr,Lf,This

28、is the previous number:,0 prompt1 BYTE cr,Lf,This is the current number:results BYTE 11 DUP(?)BYTE cr,Lf,0.CODE _start:output inputstr input string,20 atod string mov number,ax output inputstr1 input string,20 atoi string mov dx,ax mov ax,number shld dx,ax,2 shl edx,16 shl ax,3 add edx,eax output pr

29、ompt1 dtoa results,edx output results INVOKE ExitProcess,0;exit with return code 0 PUBLIC _start;make entry point public END;end of source code (写不完时,可另加附页。)实 验 结 果 分 析 及 心 得 体 会 心得体会:1.掌握了位指令的逻辑运算。2.掌握了位指令的移位和循环移位指令操作。3.对于汇编语言这门课程的学习,通过多次写程序,改程序,运行程序不断的操作实践,培养了一种良好的写程序的习惯,同时形成了一种良好的写代码的思想方式。成 绩 评 定 教师签名:年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1