给汇编程序注释

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:59:50
最好能详细点。
data segment
b db 100,0,100 dup(?),'$'
m1 db 'input a string:$'
m2 db 'numbers of digital:$';数字字符个数
m3 db 'numbers of word:$';字母字符个数
m4 db 'other char:$';其它字符个数
letter db 0
digital db 0
other db 0
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
;MOV ES,AX
mov dx,offset m1 ;把字符串m1的地址送到dx中
mov ah,09h
int 21h ;输出字符串m1
call crif
mov dx,offset b
mov ah,10
int 21h ;从键盘读入字符串
mov di,offset B
INC DI
MOV CL,[DI]
MOV CH,0
XOR BX,BX ;bx清零
nextcmp:INC di
mov al,[di]
cmp al,'0'
jl d4

在加注释的同时,对程序进行了优化。

data segment
b db 100,0,100 dup(?),'$';定义缓冲区,用于0AH号功能调用从键盘接收字符
m1 db 'input a string:$';定义提示信息,用于提示从键盘输入字符
m2 db 'numbers of digital:$';定义提示信息,用于显示数字字符个数
m3 db 'numbers of word:$';定义提示信息,用于显示字母字符个数
m4 db 'other char:$';定义提示信息,用于显示其它字符个数
letter db 0;定义缓冲区,用于存放字母字符个数
digital db 0;定义缓冲区,用于存放数字字符个数
other db 0;定义缓冲区,用于存放其它字符个数
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data;数据段物理定位
mov ds,ax

mov dx,offset m1 ;用9号功能调用提示信息,用于提示从键盘输入字符
mov ah,09h
int 21h

call crif;调用子程序,实现回车换行功能

mov dx,offset b;用0AH号功能调用从键盘接收字符
mov ah,10
int 21h

call crif;调用子程序,实现回车换行功能

mov di,offset B;
INC DI
MOV CL,[DI];将实际接收的字符个数存入CX中
MOV CH,0

XOR BX,BX ;bx清零
nextcmp:INC di
mov al,[di] ;判断接收到缓冲区的字符的情况
cmp al,'0