组成实验报告
更新时间:2024-04-20 06:39:01 阅读量: 综合文库 文档下载
上海理工大学光电信息与计算机工程学院
《计算机组成》实验报告
专 业计算机科学与技术 姓名 陈晓阳 学 号1512480225 年 级2015级 指导教师邬春学 成 绩: 教师签字:
目录
实验一 汇编实验一 ......................................................................................................................... 5 实验二 汇编实验二 ......................................................................................................................... 9 实验三 汇编实验三 ....................................................................................................................... 15
实验一 汇编实验一
一、实验目的
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 here A1 DB 2 B1 DB 1 C1 DB 3 D1 DB 4 E1 DB 1 F1 DB 4 X1 DB ? data ends
stack segment
;input stack segment code here stack ends
code segment
assume cs:code,ds:data,ss:stack
start:
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 mov ah,4ch int 21h code ends end start 1)
实验二 汇编实验二
一、实验目的
学习间接寻址、数组和转移指令的用法 二、实验环境
MicrosoftWindows7MasmV2.2 三、实验内容
1)一个由3个元素组成的整数数组,已经存放在主存的连续存储单元中,数组的起始地址为AS。设AS{10h,20h,30h}。编程实现:将数组AS中的元素向右循环移动一个位置,例如移位后变成{30h,10h,20h}。编程实现:将AS中最大
元素和最小元素分别存于Max和Min中。
2)将字符串source中的内容复制到target中,并显示输出。 四、实验代码及截图 1)
data segment
AS DW 10H,20H,30H ;input data segment code here MAX DW 0
MIN DW 0;数据初始 data ends
stack segment
;input stack segment code here stack ends
code segment
assume cs:code,ds:data,ss:stack start: mov ax,data
mov ds,ax;将data给ds mov cx,0;cx赋初始值0
mov si,offset as;将data偏移地址存到si
mov ax,[si];data内容给ax add si,2;si加2 Li:mov bx,[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;如果bx>dx则执行L4,否则将dx存入MAX L1:add si,2 mov bx,[si] cmp bx,ax
JL L2;bx
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,bx
L3:mov MIN,ax;此时ax为10,将其存入MIN mov ah,4ch int 21h code ends end start 2)
data segment
source db 'Hello world$' data ends
data1 segment target db 30 dup(?) data1 ends
stack segment
;input stack segment code here stack ends
code segment
assume cs:code,ds:data,ss:stack start: mov ax,data
mov ds,ax;data存入ds mov ax,data1
mov es,ax;data1存入es
lea si,source;source地址存到si lea di,target;target地址存到di mov cx,2 std;DF=1
rep movsb;将si中字符串复制到di中
lea dx,target mov ah,9
int 21h;输出复制得到的字符串
mov ah,4ch int 21h
code ends end start
1)
2)
实验三 汇编实验三
一、实验目的
1)学习逻辑运算指令和移位指令的用法
二、实验环境
MicrosoftWindows7MasmV2.2 三、实验内容
1)将一个指定字符串进行异或加密,每个单字符的密钥(0-255)保存在数组Key中。程序运行过程:显示明文,显示所产生的密文,显示解密后的明文。例如key = {125,248,16,8,26}
2)将一个指定字符串进行循环移位加密。每个单字符的密钥(-7~7)保存在数组Key中。程序运行过程:显示明文,显示所产生的密文,显示解密后的明文.例如key = {-2,2,1,0,-1},其中负数表示循环左移,正数表示循环右移,0不变,数字表示移动的位数 四、实验代码及截图
1)data segment
string db 'Hello$';明文 key db 125,248,16,8,26;密钥 msg1 db ' ming wen:$' msg2 db ' mi wen:$' data ends
stack segment
;input stack segment code here stack ends
code segment
assume cs:code,ds:data,ss:stack start:
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,string[bx-1] xor al,key[bx-1] mov string[bx-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,string[bx-1] xor al,key[bx-1] mov string[bx-1],al loop loop2;解密密文 lea dx,msg1 mov ah,09h int 21h lea dx,string mov ah,09h
int 21h;输出解密的明文 mov ah,4ch int 21h code ends end start
2)data segment
string db 'Hello$';待加密明文 key db -2,2,1,0,-1;密钥 msg1 db ' ming wen:$' msg2 db ' mi wen:$' data ends
stack segment
;input stack segment code here stack ends
code segment
assume cs:code,ds:data,ss:stack start:
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,key[bx-1] cmp cl,al
jl t1;若密钥小于0则跳转到tl
rol string[bx-1],cl;密钥不小于0则左循环移位 jmp s1;跳至sl
t1:neg cl;若密钥小于0,则取补,变为正数进行操作 ror string[bx-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,key[bx-1]
cmp cl,al;比较密钥与0的大小 jg t2;若密钥大于0则执行t2 neg cl;密钥不大于0则对cl取补 rol string[bx-1],cl;对密文左循环移位 jmp s2
t2:ror string[bx-1],cl;密钥大于0,对密文右循环移位 s2:pop cx;弹栈 loop loop2 lea dx,msg1 mov ah,09h int 21h
lea dx,string mov ah,09h
int 21h;输出解密后的明文 mov ah,4ch int 21h code ends end start 1)
2)
正在阅读:
组成实验报告04-20
音色在声乐艺术中的表现作用05-08
儒林外史好词好句摘抄加赏析_儒林外史摘抄好词好句 儒林外史每回好句赏析05-17
某公司财务预算表格06-11
机电安装材料招标技术要求12-16
含铬废液的处理化学实验报告09-19
导游综合知识测试12-20
与梦同行作文03-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 组成
- 实验
- 报告
- 商业空间9种类型
- 奥克兰理工大学学术研究
- 消费者理论习题20101122
- PBL教案教师内分泌系统版
- 数据库课程设计--图书管理系统
- 管理学整理例题
- 08高考文科试题分类函数
- 安庆公司年会哪家好?
- 大学计算机基础实验指导(第8版 2014.02修订)-最后修改
- 《机械制图》会考复习题集(修改)
- 《中医病历书写基本规范》2010年版
- WebService总账(凭证引入)接口说明 - EAS7.0.1
- 《国际铁路货物联运协定》
- 2016年中考思想品德知识点主题归类整理
- 商法学复习题答案
- 中南大学消防11级 流体力学试卷
- 高职专业目录,第二稿(1) - 图文
- 漂移法对极轴详细图解
- 二年级数学下册 拨一拨教学设计 北师大版
- 2018高中英语词汇模块记忆法101页