汇编跳转的巧妙实现
大小写转换
DATAS SEGMENT ;此处输入数据段代码 db 'fjssbfAFDNbjJBJw' DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV ax,DATAS MOV DS,AX mov ax,OFFSET S3 push ax mov ax,OFFSET S0 push ax mov ax,OFFSET S1 push ax MOV AX,0B872H ;显存位置 S0: mov es,ax ;将显存地址赋给附加段 mov si,0 mov di,0 mov cx,10h ;因为字符有16个所以这里赋值为10h S: MOV al,ds:[di] mov es:[si],al ;上面这两步将数据段中的字符一一给复制到显存的偶数位 inc di add si,2 loop S POP bx JMP bx ;nnnnnnnnnnnnnnnnnnnnnnnnnn S1: mov bx,0 mov cx,10h s4: mov al,[bx] and al,11011111b mov [bx],al inc bx loop s4 MOV AX,0B872H ;显存位置 add ax,0ah POP bx JMP bx S3: MOV AH,4CH INT 21H CODES ENDS END START