汇编跳转的巧妙实现
大小写转换
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
191

被折叠的 条评论
为什么被折叠?



