组成实验报告_第1页
组成实验报告_第2页
组成实验报告_第3页
组成实验报告_第4页
组成实验报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、上海理工大学光电信息与计算机工程学院计算机组成实验报告专业计算机科学与技术姓名陈晓阳学号1512480225年级2015级指导教师邬春学成 绩:教师签字:目录实验一 汇编实验一4实验二 汇编实验二7实验三 汇编实验三12实验一 汇编实验一一、实验目的1)掌握汇编的基本语法二、实验环境microsoftwindows7masmv2.2三、实验内容编程计算表达式 x=a x b + c - d/(e+f)其中x、a、b、c、d、e、f均为双字节整数。地址分别为x、a1、b1、c1、d1、e1、f1四、实验代码及截图1)data segment ;input data segment code he

2、re a1 db 2 b1 db 1 c1 db 3 d1 db 4 e1 db 1 f1 db 4 x1 db ?data endsstack segment ;input stack segment code herestack endscode segment assume cs:code,ds:data,ss:stackstart: mov ax,data mov ds,ax ;input code segment code here mov al,a1 mul bl add al,c1 sub al,d1 mov bl,e1 add bl,f1 div bl mov x1,al mo

3、v ah,4ch int 21hcode endsend start1)实验二 汇编实验二一、 实验目的学习间接寻址、数组和转移指令的用法二、实验环境microsoftwindows7masmv2.2三、实验内容1)一个由3个元素组成的整数数组,已经存放在主存的连续存储单元中,数组的起始地址为as。设as10h,20h,30h。编程实现:将数组as中的元素向右循环移动一个位置,例如移位后变成30h,10h,20h。编程实现:将as中最大元素和最小元素分别存于max和min中。2)将字符串source中的内容复制到target中,并显示输出。四、实验代码及截图1)data segment as

4、dw 10h,20h,30h ;input data segment code here max dw 0 min dw 0;数据初始data endsstack segment ;input stack segment code herestack endscode segment assume cs:code,ds:data,ss:stackstart:mov ax,data mov ds,ax;将data给ds mov cx,0;cx赋初始值0 mov si,offset as;将data偏移地址存到simov ax,si;data内容给ax add si,2;si加2 li:mov b

5、x,si mov si,ax mov ax,bx add si,2 add cx,1 cmp cx,2 jnz li sub si,6 mov si,ax;将30移位到第一位 mov ax,si mov min,ax mov max,ax;初始化min,max add si,2 mov bx,si cmp bx,ax jl l1;bx<ax执行l1,此时bx=10,ax=30,执行l1 mov max,bx;如果bx>=ax,把bx值存入max add si,2;si后移一个数据 mov dx,si cmp bx,dx jg l4 mov max,dx;如果bx>dx则执行l

6、4,否则将dx存入max l1:add si,2 mov bx,si cmp bx,ax jl l2;bx<ax则执行l2否则将bx值存入max mov max,bx l4:cmp ax,dx jg l5 l5:mov min,dx ;将dx存入min l2:mov bx,si sub si,2 mov ax,si cmp bx,ax jg l3;bx大于ax则跳转l3,否则将bx存入min mov min,bxl3:mov min,ax;此时ax为10,将其存入minmov ah,4ch int 21hcode endsend start2)data segment source db

7、 'hello world$'data endsdata1 segmenttarget db 30 dup(?)data1 endsstack segment ;input stack segment code herestack endscode segment assume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,ax;data存入dsmov ax,data1mov es,ax;data1存入eslea si,source;source地址存到silea di,target;target地址存到dimov cx,2st

8、d;df=1rep movsb;将si中字符串复制到di中lea dx,targetmov ah,9int 21h;输出复制得到的字符串mov ah,4chint 21hcode endsend start1)2)实验三 汇编实验三一、实验目的1)学习逻辑运算指令和移位指令的用法二、实验环境microsoftwindows7masmv2.2三、实验内容1)将一个指定字符串进行异或加密,每个单字符的密钥(0-255)保存在数组key中。程序运行过程:显示明文,显示所产生的密文,显示解密后的明文。例如key = 125,248,16,8,262)将一个指定字符串进行循环移位加密。每个单字符的密钥(

9、-77)保存在数组key中。程序运行过程:显示明文,显示所产生的密文,显示解密后的明文.例如key = -2,2,1,0,-1,其中负数表示循环左移,正数表示循环右移,0不变,数字表示移动的位数四、实验代码及截图1)data segmentstring db 'hello$'明文key db 125,248,16,8,26;密钥msg1 db ' ming wen:$'msg2 db ' mi wen:$'data endsstack segment ;input stack segment code herestack endscode seg

10、ment assume cs:code,ds:data,ss:stackstart: mov ax,data mov ds,ax lea dx,msg1 mov ah,09h int 21h lea dx,string mov ah,09h int 21h;输出加密前明文 mov cx,5 loop1:mov bx,cx mov al,stringbx-1 xor al,keybx-1 mov stringbx-1,al loop loop1;明文加密 lea dx,msg2 mov ah,09h int 21h lea dx,string mov ah,09h int 21h;输出加密后的密

11、文 mov cx,5 loop2:mov bx,cx mov al,stringbx-1 xor al,keybx-1 mov stringbx-1,al loop loop2;解密密文 lea dx,msg1 mov ah,09h int 21h lea dx,string mov ah,09h int 21h;输出解密的明文 mov ah,4ch int 21hcode endsend start2)data segmentstring db 'hello$'待加密明文key db -2,2,1,0,-1;密钥msg1 db ' ming wen:$'msg

12、2 db ' mi wen:$'data endsstack segment ;input stack segment code herestack endscode segment assume cs:code,ds:data,ss:stackstart: mov ax,data mov ds,ax lea dx,msg1 mov ah,09h int 21h lea dx,string mov ah,09h int 21h;输出加密前的明文 mov cx,5 mov al,0 loop1:mov bx,cx push cx;对cx压栈 mov cl,keybx-1 cmp

13、cl,al jl t1;若密钥小于0则跳转到tl rol stringbx-1,cl;密钥不小于0则左循环移位 jmp s1;跳至sl t1:neg cl;若密钥小于0,则取补,变为正数进行操作 ror stringbx-1,cl;右循环移位 s1:pop cx;弹栈 loop loop1 lea dx,msg2 mov ah,09h int 21h lea dx,string mov ah,09h int 21h;输出加密后的密文 mov cx,5 mov al,0 loop2:mov bx,cx push cx;压栈 mov cl,keybx-1 cmp cl,al;比较密钥与0的大小 jg t2;若密钥大于0则执行t2 neg cl;密钥不大于0则对cl取补

温馨提示

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

评论

0/150

提交评论