匯程式設計序 字串加密

2021-07-29 22:35:23 字數 2044 閱讀 5759

(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

endstart

[參考解答]

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

endstart

(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

endstart

匯程式設計序 實現字串中去除空格字元

程式需求 有乙個首位址為string的字串 剔除string中所有的空格字元。請從字串最後乙個字元開始逐個向前判斷 並進行處理。程式設計思路 假設串以0作為結束標誌,從右向左掃瞄,遇到空格後,將其後的所有字元向前移動乙個位置,直到該字元為止。由於串長是動態變化的,所以需要設定三個指標,tailp指向...

字串的輸入與顯示(匯程式設計序)

彙編臨近考試,雖然只是考察科目,但學了的東西不能白學,就把自己複習的東西拿出來,以後要回顧也方便 方法一 通過02號單個字元的輸出功能,迴圈輸出得到字串 data segment strs db please input a string buf db 20 db db 20 dup crlf db...

匯程式設計序 統計字元 A 在字串中出現的次數

str是乙個以 為結束的字串,如下程式統計字元 a 在字串中出現的次數,並將統計的結果 送到count單元,用組合語言完成此程式的設計 data segment data segment 定義乙個資料段 str db aaaacahjsjisjaidsajis 定義str串 在彙編中終止符是 c語言...