组成实验报告.doc

上传人:小** 文档编号:90991482 上传时间:2019-06-20 格式:DOC 页数:20 大小:322.73KB
返回 下载 相关 举报
组成实验报告.doc_第1页
第1页 / 共20页
组成实验报告.doc_第2页
第2页 / 共20页
组成实验报告.doc_第3页
第3页 / 共20页
组成实验报告.doc_第4页
第4页 / 共20页
组成实验报告.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《组成实验报告.doc》由会员分享,可在线阅读,更多相关《组成实验报告.doc(20页珍藏版)》请在金锄头文库上搜索。

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,把bx值存入MAX add si,2;si后移一个数据 mov dx,si cmp bx,dx JG L4 mov MAX,dx;如果bxdx则执行L4,否则将dx存入MAX L1:add si,2 mov bx,si cmp bx,ax JL L2;bx

6、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 Hello world$data endsdata1 segmenttarget db 30 dup(?)dat

7、a1 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,2std;DF=1rep movsb;将si中字符串复制到di中lea dx,targetmov ah,9int 21h;输出复制得到的字符

8、串mov ah,4chint 21hcode endsend start1)2)实验三 汇编实验三一、实验目的1)学习逻辑运算指令和移位指令的用法二、实验环境MicrosoftWindows7MasmV2.2三、实验内容1)将一个指定字符串进行异或加密,每个单字符的密钥(0-255)保存在数组Key中。程序运行过程:显示明文,显示所产生的密文,显示解密后的明文。例如key = 125,248,16,8,262)将一个指定字符串进行循环移位加密。每个单字符的密钥(-77)保存在数组Key中。程序运行过程:显示明文,显示所产生的密文,显示解密后的明文.例如key = -2,2,1,0,-1,其中负

9、数表示循环左移,正数表示循环右移,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 segment assume cs:code,ds:data,ss:stackstart: mov ax,data mov ds,ax lea dx,msg1 mov ah,09h int 21h le

10、a 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;输出加密后的密文 mov cx,5 loop2:mov bx,cx mov al,stringbx-1 xor al,keybx-1 mov stringbx-1,al loop loop2;解密密文 lea

11、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:$msg2 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 cl,al jl t1;若密钥小于0则跳转到tl rol stringbx-1,cl;密钥不小于0则左循环移位 jmp s1;跳至sl t1:neg cl;若密钥小于0,则取补,变为正数进行操作 ror stringbx-1,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号