- [younggay] 20? 那个20? 01/21 15:05
- [martian] 博主辛苦了! 11/24 13:43
- [acool] 先存下 看看O(∩_∩)O哈哈~ 11/22 12:30
- [acool] 不错,踩踩;) 11/22 12:27
- [tomato] 收藏一下,好好看看,扫扫盲。 11/21 20:01
- [younggay] 程序正确固然重要,必要的地方写注释也是很必要的。要不看的人脑袋可就大了。呵呵 fighting ! 11/21 14:47
- [younggay] 就提一点要求: 哥儿们,加点注释把,(*^__^*)...嘻嘻 11/21 14:37
- [lwbfq] 有点糊涂。 11/21 14:26
- [lwbfq] 有点糊涂。 11/21 14:26
- [younggay] 嗯。不错,不过要是关键代码部分加上注释就更好了。而且加注释也是一个成熟的编程人员的良好习惯。 11/21 14:23
- [h.goood] 汇编作业在哪里做?我怎么没找到? 11/24 12:32
[2008-11-14 19:40] 实验十一
assume cs:codesg
datasg segment
db"Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax,datasg
mov ds,ax
mov si,0
call letterc
exit:mov dh,13
mov dl,0
call show_str
mov ax,4c00h
int 21h
show_str:
push cx
push dx
push bx
push si
push di
push ax
mov ch,0
mov cl,7
dec dh
dec dl
mov al,dh
mov bl,160
mul bl
mov bx,ax
mov al,dl
mov dl,2
mul dl
add ax,bx
mov bx,ax
mov di,0
mov si,0
ak:push cx
mov cl,[si]
jcxz fs
mov ax,0B800H
mov es,ax
mov al,[si]
mov es:[bx+di],al
pop cx
mov es:[bx+di+1],cl
inc si
add di,2
jmp short ak
fs:pop cx
pop ax
pop di
pop si
pop bx
pop dx
pop cx
ret
letterc:
push ax
push si
push cx
s:
mov al,[si]
mov ch,0
mov cl,al
jcxz exit
cmp al,97
jb s1
cmp al,122
ja s1
and al,11011111b
mov [si],al
s1:inc si
jmp s
pop cx
pop si
pop ax
codesg ends
end begin
为了能直观得看出效果,调用前面的show_str来显示转换后的字符。所传图为运行效果。其实就是判断,小写字符的ascii码是97到122,如果数值在这之间,则对它进行处理,如果不是,则跳过。
datasg segment
db"Beginner's All-purpose Symbolic Instruction Code.",0
datasg ends
codesg segment
begin:
mov ax,datasg
mov ds,ax
mov si,0
call letterc
exit:mov dh,13
mov dl,0
call show_str
mov ax,4c00h
int 21h
show_str:
push cx
push dx
push bx
push si
push di
push ax
mov ch,0
mov cl,7
dec dh
dec dl
mov al,dh
mov bl,160
mul bl
mov bx,ax
mov al,dl
mov dl,2
mul dl
add ax,bx
mov bx,ax
mov di,0
mov si,0
ak:push cx
mov cl,[si]
jcxz fs
mov ax,0B800H
mov es,ax
mov al,[si]
mov es:[bx+di],al
pop cx
mov es:[bx+di+1],cl
inc si
add di,2
jmp short ak
fs:pop cx
pop ax
pop di
pop si
pop bx
pop dx
pop cx
ret
letterc:
push ax
push si
push cx
s:
mov al,[si]
mov ch,0
mov cl,al
jcxz exit
cmp al,97
jb s1
cmp al,122
ja s1
and al,11011111b
mov [si],al
s1:inc si
jmp s
pop cx
pop si
pop ax
codesg ends
end begin
为了能直观得看出效果,调用前面的show_str来显示转换后的字符。所传图为运行效果。其实就是判断,小写字符的ascii码是97到122,如果数值在这之间,则对它进行处理,如果不是,则跳过。
评论次数(1) |
浏览次数(695) |
类型(汇编作业) |
收藏此文 |