汇编:将指定的内存中连续N个字节填写成指定的内容
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
"你的指尖,拥有改变世界的力量! "
欢迎关注我的个人博客:https://sugarat.top