回 帖 发 新 帖 刷新版面

主题:救命啊!!!!!!!!!!!!!!!!!

用汇编语言编写程序啊
编写一个子程序嵌套结构的程序模块,分别从键盘输入姓名及8个字符的电话号码,并以一定的格式显示出来。
主程序TELIST:
         (1)显示提示符INPUT NAME:;
         (2)调用子程序INPUT_NAME输入姓名;
         (3)显示提示符INPUT A TELEPHONE NUMBER:;
         (4)调用子程序INPHONE输入电话号码;
         (5)调用子程序PRINTLINE显示姓名及电话号码。
子程序INPUT_NAME:
         (1)调用键盘输入子程序GETCHAR,把输入的姓名存放在INBUF 缓冲区中;
         (2)把INBUF中的姓名移入输出行OUTNAME。
子程序INPHONE:
         (1)调用键盘输入子程序GETCHAR,把输入的8位电话号码存放在INBUF
              缓冲区中;
         (2)把INBUF中的号码移入输出行OUTPHONE。
子程序PRINTLINE:
     显示姓名及电话号码,格式为:
              NAME              TEL.
              ***               ***

回复列表 (共3个回复)

沙发

不知有无错,仅供参考:

stack segment
db 64 dup(?)
tos label byte
stack ends

data segment
buffer label byte
maxlen db 20
len db ?
inbuf db 20 dup(' ')
outname db 20 dup(?),'$'
outphone db 8 dup(?),'$'
msg1 db 'input name:$'
msg2 db 'input a telephone number:$'
form db 'name',9 dup(20h),'tel','$'
data ends

;data segment ends
code segment
begin proc far  ;inital

assume cs:code,ds:data,ss:stack
start:  
mov ax,stack
mov ss,ax
mov sp,offset tos
           
      mov ax,data
      mov ds,ax
      mov es,ax
      
      mov ah,09h             ;get name
      lea dx,msg1
      int 21h
      call crlf
      call input_name
      call crlf
      
      mov ah,09h             ;get phone number
      lea dx,msg2
      int 21h
      call crlf
      call inphone
      call crlf
      call printline
      mov ax,4c00h
      int 21h
   begin endp




getchar proc near
    
    mov ah,0ah
    lea dx,buffer
    int 21h
    
    ret
getchar endp


input_name proc near
   
    call getchar
    mov cx,20
    cld
    lea si,inbuf
    lea di,outname
    rep movsb
   
    ret
input_name endp

inphone proc near
   
   call getchar
   mov cx,8
   cld
   lea si,inbuf
   lea di,outphone
   rep movsb
   
   ret
inphone endp  

printline proc near
   
    mov ah,09h
    lea dx,form
    int 21h
    
    mov dl,0dh             ;change the line
    mov ah,2
    int 21h
    mov dl,0ah
    int 21h
    
    mov ah,09h
    lea dx,outname
    int 21h
    call crlf
    mov ah,09h
    lea dx,outphone
    int 21h
   
  ret
printline endp


crlf proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
ret
crlf endp

code ends
end start

板凳

汇编程序!
用汇编语言编写一个执行 “ R〈---X+Y-3 ”  计算的子程序COMPUTE:其中X,Y及R均为字数组。
COMPUTE与其调用程序都在同一代码段中,数据段D-SEG中包含x和y数组,数据段E-SEG中包含R数组,同时写出主程序调用COMPUTE过程的部分。
1,如果主程序和COMPUTE在同一程序模块中,但不在同一代码中,程序要如何修改??
2,如果主程序和COMPUTE不在同一模块中,程序要怎样修改!??

这道题目是汇编语言程序设计第2版第6章最后一题
大哥你好强啊 ·!帮我 做完 这题啊 万分感谢啊

3 楼

回一楼的啊
老大啊
好象结果的格式不一样啊
看到的时候能不能帮我运行下看看
我这里运行的结果格式是不一样的

我来回复

您尚未登录,请登录后再回复。点此登录或注册