组成实验报告
更新时间:2024-01-30 00:22: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)
正在阅读:
组成实验报告01-30
报盘还盘10-17
山西大学人文社会科学学术论文著作分级标准 - 图文01-23
中国教育梦观摩体会-王馨苹12-19
《以河流为纽带的经济区域长江沿江地带》教案第一课时(1) - 图文05-29
古诗大德歌·秋翻译赏析04-13
同力水泥:关于控股股东河南投资集团有限公司对外投资公告 2010-12-1105-21
绝味鸭脖盘活小行业大电商模式07-29
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 组成
- 实验
- 报告
- ACCA F4 Source of English law(一)
- 二年级数学下册 拨一拨教学设计 北师大版
- 工业区综合管廊基坑排桩支护开挖及结构工程施工方案
- 福建省发展老龄产业若干问题的思考
- 北师大版五年级上册数学通分与约分 精品练习题(24)
- 试谈初中数学教学中的合作学习
- 电子政务题库
- 信息化管理在企业管理中的重要作用
- 2018年高考化学真题与模拟类编:专题18-物质结构与性质(选修)
- 期中练习1
- 《国际铁路货物联运协定》
- 北师大年333教育综合试题终极预测题及答案
- 网球体育理论考试
- 高职专业目录,第二稿(1) - 图文
- 配电柜、控制柜冷却风扇的选用
- 2017-2022年中国铝箔市场供需预测研究报告(目录) - 图文
- 混凝土工程施工方案(修改)
- 北航数值分析大作业一
- 医药行业十三五发展规划制定分析0813
- 单选题1-计算机基础知识1