匯編:將指定的內存中連續N個字節填寫成指定的內容
阿新 • • 發佈:2019-01-09
內存 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個字節填寫成指定的內容