(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語言...