组成实验报告Word文件下载.docx
- 文档编号:21834975
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:13
- 大小:269.85KB
组成实验报告Word文件下载.docx
《组成实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《组成实验报告Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
;
inputdatasegmentcodehere
A1DB2
B1DB1
C1DB3
D1DB4
E1DB1
F1DB4
X1DB?
dataends
stacksegment
inputstacksegmentcodehere
stackends
codesegment
assumecs:
code,ds:
data,ss:
stack
start:
movax,data
movds,ax
inputcodesegmentcodehere
movAL,A1
MULBL
ADDAL,C1
SUBAL,D1
MOVBL,E1
ADDBL,F1
DIVBL
MOVX1,AL
movah,4ch
int21h
codeends
endstart
实验二汇编实验二
一、实验目的
学习间接寻址、数组和转移指令的用法
MicrosoftWindows7MasmV2.2
1)一个由3个元素组成的整数数组,已经存放在主存的连续存储单元中,数组的起始地址为AS。
设AS{10h,20h,30h}。
编程实现:
将数组AS中的元素向右循环移动一个位置,例如移位后变成{30h,10h,20h}。
将AS中最大元素和最小元素分别存于Max和Min中。
2)将字符串source中的内容复制到target中,并显示输出。
datasegment
ASDW10H,20H,30H;
MAXDW0
MINDW0;
数据初始
movax,data
movds,ax;
将data给ds
movcx,0;
cx赋初始值0
movsi,offsetas;
将data偏移地址存到si
movax,[si];
data内容给ax
addsi,2;
si加2
Li:
movbx,[si]
mov[si],ax
movax,bx
addsi,2
addcx,1
cmpcx,2
JNZLi
subsi,6
mov[si],ax;
将30移位到第一位
movax,[si]
movMIN,ax
movMAX,ax;
初始化MIN,MAX
movbx,[si]
cmpbx,ax
JLL1;
bx<
ax执行l1,此时bx=10,ax=30,执行l1
movMAX,bx;
如果bx>
=ax,把bx值存入MAX
si后移一个数据
movdx,[si]
cmpbx,dx
JGL4
movMAX,dx;
dx则执行L4,否则将dx存入MAX
L1:
addsi,2
JLL2;
ax则执行L2否则将bx值存入MAX
movMAX,bx
L4:
cmpax,dx
JGL5
L5:
movMIN,dx;
将dx存入MIN
L2:
subsi,2
JGL3;
bx大于ax则跳转L3,否则将bx存入MIN
movMIN,bx
L3:
movMIN,ax;
此时ax为10,将其存入MIN
movah,4ch
2)
sourcedb'
Helloworld$'
data1segment
targetdb30dup(?
)
data1ends
movds,ax;
data存入ds
movax,data1
moves,ax;
data1存入es
leasi,source;
source地址存到si
leadi,target;
target地址存到di
movcx,2
std;
DF=1
repmovsb;
将si中字符串复制到di中
leadx,target
movah,9
int21h;
输出复制得到的字符串
int21h
实验三汇编实验三
1)学习逻辑运算指令和移位指令的用法
1)将一个指定字符串进行异或加密,每个单字符的密钥(0-255)保存在数组Key中。
程序运行过程:
显示明文,显示所产生的密文,显示解密后的明文。
例如key={125,248,16,8,26}
2)将一个指定字符串进行循环移位加密。
每个单字符的密钥(-7~7)保存在数组Key中。
显示明文,显示所产生的密文,显示解密后的明文.例如key={-2,2,1,0,-1},其中负数表示循环左移,正数表示循环右移,0不变,数字表示移动的位数
1)datasegment
stringdb'
Hello$'
;
明文
keydb125,248,16,8,26;
密钥
msg1db'
mingwen:
$'
msg2db'
miwen:
leadx,msg1
movah,09h
int21h
leadx,string
int21h;
输出加密前明文
movcx,5
loop1:
movbx,cx
moval,string[bx-1]
xoral,key[bx-1]
movstring[bx-1],al
looploop1;
明文加密
leadx,msg2
输出加密后的密文
loop2:
looploop2;
解密密文
输出解密的明文
2)datasegment
待加密明文
keydb-2,2,1,0,-1;
输出加密前的明文
moval,0
pushcx;
对cx压栈
movcl,key[bx-1]
cmpcl,al
jlt1;
若密钥小于0则跳转到tl
rolstring[bx-1],cl;
密钥不小于0则左循环移位
jmps1;
跳至sl
t1:
negcl;
若密钥小于0,则取补,变为正数进行操作
rorstring[bx-1],cl;
右循环移位
s1:
popcx;
弹栈
looploop1
压栈
cmpcl,al;
比较密钥与0的大小
jgt2;
若密钥大于0则执行t2
negcl;
密钥不大于0则对cl取补
对密文左循环移位
jmps2
t2:
rorstring[bx-1],cl;
密钥大于0,对密文右循环移位
s2:
looploop2
输出解密后的明文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组成 实验 报告