关于汇编问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:12:06
2. 利用DOS 9号和 A号功能调用编写程序,要求计算机输出:
Who are you ?
输入你的名字的拼音,例如 Zhu yaoting
计算机输出
Hello Zhu yaoting.
执行该程序整个屏幕显示为:
Who are you ?
Zhu yaoting
Hello Zhu yaoting.
如果输入的不是 Zhu yaoting 而是 li ming,输出则应该为 Hello Li ming.

; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
; -------------------------------------
; 功能:显示指定地址(Str_Addr)的字符串
; 入口:
; Str_Addr=字符串地址(要求在数据段)
; 用法: Output Str_Addr
; 用法举例:Output PromptStr
Output MACRO Str_Addr
lea dx,Str_Addr
mov ah,9
int 21h
EndM
; -------------------------------------
Prompt_Str db 'Who are you ?',13,10,'$'
Prefix_Word db 13,10,'Hello $'
Start: push cs
pop ds
Output Prompt_Str ;提示输入姓名
lea dx,Buffer ;字符串缓冲区地址
Input_Str: mov ah,0ah
int 21h
mov bl,Buffer[1] ;实际输入的字符数
test bl,bl ;空串?
jz Input_Str ;是,重新输入
xor bh,bh
mov word ptr Buffer[bx][2],'$.'
Output Prefix_Word
Output Buffer[2]
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Buffer db 80 ;字符串缓冲区
Code ENDS
END Start ;编译到此结束