关于汇编语言详细解读,我新手。。什么都看不懂

data segment
str1 db 30,?,30 dup(?)
crlf db 0ah,0dh,'$'
data ends
code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
lea dx,str1
mov ah,0ah
int 21h
lea di,str1+2
mov bl,str1+1
mov bh,0
mov byte ptr[bx][di],'$’
lea dx,crlf
mov ah,09h
int 21h
lea dx,str1+2
mov ah,09h
int 21h
mov ax,4c00h
int 21h
main endp
code ends
end start


data segment ;数据段定义开始
   str1  db 30,?,30 dup(?) ;输入缓存区,限长30B
   crlf  db  0ah,0dh,'$' ;回测换行
data ends ;数据段定义结束
code segment ;代码段定义结束
  assume cs:code,ds:data
  main proc far ;子程序定义开始
start:
    mov ax,data
    mov ds,ax ;设置数据段段基
    lea dx,str1
    mov ah,0ah
    int 21h       ;接受输入至缓存区
    lea di,str1+2
    mov bl,str1+1
    mov bh,0
    mov byte ptr[bx][di],'$’ ;设置串结束标志,为打印串做准备
    lea dx,crlf
    mov ah,09h
    int 21h
    lea dx,str1+2
    mov ah,09h
    int 21h ;回车换行并打印串
    mov ax,4c00h
    int 21h ;返回
main endp ;子程序定义结束
code ends ;代码段定义结束
end start ;声明主模块入口

温馨提示:答案为网友推荐,仅供参考
相似回答