在原作业的要求上加入了结果输出
;////////////////////////////////////////////////////////////////////////////////
;// 存放在data中的字符串大写字母转化成小写,并显示出来 //
;////////////////////////////////////////////////////////////////////////////////
assume cs:code
data segment
db "Beginner's All-purpose Symbolic Instruction Code.",0
data ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0
call letterc
mov dh,8
mov dl,3
mov cl,2
call show
mov ax,4c00h
int 21h
letterc:
push si
lop:
mov cl,[si]
mov ch,0
jcxz ok
cmp cl,41h ;比较大写字母A,小于则转移
jb s
cmp cl,5ah ;比较大写字母Z,大于则转移
ja s
or cl,00100000b ;大写字母转换小写字母
mov [si],cl
s:
inc si
loop lop
ok:
pop si
ret
show:
push si
mov ax,0b800h
mov es,ax
mov al,0a0h
mul dh
mov bx,ax
mov dh,0
add bx,dx
inc bx ;颜色放在奇数位上,显示的字符应该放在偶数位上,计算显示字符串的起始位置
mov al,cl
mov ch,0
writ:
mov cl,[si]
jcxz over
mov byte ptr es:[bx],cl
mov byte ptr es:[bx+1],al
add bx,2
inc si
jmp short writ
over:
pop si
ret
code ends
end start
- [kuiye] 为什么大家的中断处理程序都没有用iret指令来返回? 12/25 10:41
- [zy3287] 恩,是啊,我也是过后才想起这个问题的,应该dl*2才对,呵呵 11/27 08:37
- [lwbfq] 安装的时候还会遇到一些问题,相信博主是能够解决的。 11/26 19:17
- [lwbfq] 继续。 11/26 19:07
- [wsrf] 不错。 11/26 17:20
- [wsrf] 程序没问题,大家一起进步。 11/26 17:18
- [wsrf] 没问题。 11/26 17:13
- [wsrf] 完成的不错。 11/26 17:04
- [wsrf] 博主继续努力。 11/26 17:00
- [wsrf] 还是show_str: 的老问题,列不能定位到0。 11/26 16:59
- [游客] 你好,zy3287 可以给一份银行的网银接口文档吗 QQ 99728441 01/31 02:34