|
发表于 2020-6-22 21:17:26
|
显示全部楼层
本帖最后由 405794672 于 2020-6-23 12:12 编辑
忘记段寄存器不能直接赋值了。修改了一下。
- 1: mov ax,2000H
- mov ds,ax
- mov ax,2070h
- mov es,ax
- mov di,0
- mov si,0
- mov cx,100
- cld
- rep movsb
-
- 2: mov ax,字符串首地址
- mov ds,ax
- mov ax,0
- mov bx,0
- mov dx,0
- mov bp,0
- a cmp ds:[bx],'A'自己找ASCII码值
- jnb letter
- num cmp ds:[bx],'0'
- jnb lnum
- other cmp ds:[bx],0
- je display
- inc bp
- inc bx
- jmp a
- letter cmp ds:[bx],'Z'
- ja sletter
- inc ax
- inc bx
- jmp a
- sletter cmp ds:[bx],'a'
- jb num
- cmp ds:[bx],'z'
- ja num
- inc ax
- inc bx
- jmp a
- lnum cmp ds:[bx],'9'
- ja other
- inc dx
- inc bx
- jmp a
- display 这里开始进行显示了。注意。ax是字母数量,dx是数字数量,bp是其它字符数量
- 3: mov ax,300H
- mov ds,ax
- mov ax,0
- mov bx,0
- mov cx,10
- num add al,ds:[bx]
- adc ah,0
- inc bx
- loop num
- mov bx,50Ah
- mov ds,bx
- mov ds:0,ax
-
-
复制代码
|
|