1. 程式人生 > >匯編:將指定的內存中連續N個字節填寫成指定的內容

匯編:將指定的內存中連續N個字節填寫成指定的內容

內存 cmp 字符 內容 sum int 條件轉移 spa style

1.loop指令實現

 1 ;===============================
 2 ;循環程序設計
 3 ;將制定內存中連續count個字節填寫成指定內容(te)
 4 ;loop指令實現
 5 DATAS SEGMENT
 6 string db a test string,$
 7 te dw Q   ;用於替換的字符(字)
 8 ; te db ‘Q‘   ;用於替換的字符(字節)
 9 count db 5  ;連續5個字節
10 DATAS ends
11 CODES SEGMENT
12     ASSUME CS:CODES, DS:DATAS
13     START:
14 mov AX,DATAS 15 mov DS,AX 16 17 xor cx,cx 18 xor ax,ax 19 mov si,offset string 20 ; mov al,te ;(字節) 21 mov ax,te ;用於替換的字符放入按下中 22 mov cl,count;設置循環次數 23 lp: 24 ; mov [si],Al 25 ; inc si ;(字節) 26 mov
[si],Ax ;替換原內容 27 add si,2 ;帶操作的內存的偏移地址增加 28 loop lp 29 print: 30 lea dx,string 31 mov ah,09H 32 int 21h 33 34 exit: 35 mov ah,4ch 36 int 21H 37 CODES ends 38 end START

2.條件轉移指令

 1 ;===============================
 2 ;循環程序設計
 3
;將制定內存中連續count個字節填寫成指定內容(te) 4 ;條件轉移指令實現 5 DATAS SEGMENT 6 string db a test string,$ 7 te db Q ;用於替換的字符 8 count db 5 ;連續5個字節 9 DATAS ends 10 CODES SEGMENT 11 ASSUME CS:CODES, DS:DATAS 12 START: 13 mov AX,DATAS 14 mov DS,AX 15 16 xor cx,cx 17 xor ax,ax 18 mov si,offset string 19 mov al,te 20 mov cl,count 21 flag: 22 mov [si],al 23 inc si ;si自增1 24 dec cl ;cl自減1 25 cmp cl,00h 26 ja flag ;cl大於0跳轉 27 print: 28 lea dx,string 29 mov ah,09H 30 int 21h 31 32 exit: 33 mov ah,4ch 34 int 21H 35 CODES ends 36 end START

匯編:將指定的內存中連續N個字節填寫成指定的內容