汇编程序:字符串加密

字符串加密

(1)编程为datasg段中字符串中的每个字符加密,加密规则是:每个字符的ASCII值加4。加密好的字符写在待加密字符的后面

assume cs:codesg,ds:datasg
datasg segment
db 'aah, I love you!'
db '................'
datasg ends
codesg segment
start: (写程序)
mov ax,4c00h
int 21h
codesg ends
end start

[参考解答]

assume cs:codesg,ds:datasg
datasg segment
db 'aah, I love you!'
db '................'
datasg ends
codesg segment
start: mov ax, datasg
mov ds, ax
mov cx, 16
mov si, 0
mov di, 16
change:mov al, [si]
add al, 4
mov [di], al
inc si
inc di
loop change

mov ax,4c00h
int 21h
codesg ends
end start

(2)编程为datasg中的每个字符串加密,加密的规则是,每行第1个字符ASCII码加1,第2个字符ASCII码加2,依类类推。已知每个字符串固定为16个字符,非空格字符不足16的,后都是空格。加密后的符号替代原字任,就写在原处。

datasg segment
db 'He Li Jian '
db 'Zhai Yi Ming '
db 'Sun Xue Jiao '
db 'Ma Wen Ming '
datasg ends

[参考解答](程序变得复杂,要及时写注释了)

assume cs:codesg,ds:datasg
datasg segment
db 'He Li Jian '
db 'Zhai Yi Ming '
db 'Sun Xue Jiao '
db 'Ma Wen Ming '
datasg ends
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
codesg segment
start: mov ax, stacksg
mov ss, ax
mov sp, 16
mov ax, datasg
mov ds, ax
mov bx, 0 ;基址
mov cx, 4 ;外层循环次数
mov dl, 1 ;这是第几个字符?
s0: push cx ;保存外层循环数
mov si, 0 ;[bx+si]将是要处理的字符
mov cx, 16 ;设置内层循环次数
s: mov al, [bx+si] ;取字符
add al, dl ;加密
mov [bx+si], al ;写入加密字符
inc si
inc dl
loop s
add bx, 16 ;准备为下一个字符串加密
mov si, 0
mov dl, 1
pop cx
loop s0

mov ax,4c00h
int 21h
codesg ends
end start

永不止步步 发表于04-20 10:05 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363741个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号