急!微机原理,汇编语言!
一、实验目的1、掌握表处理程序设计的基本方法。2、掌握DOS功能调用的方法。二、实验内容1、编写程序,求一给定值X的平方,X的取值范围为0~9;2、要求X从键盘输入,当输...
一、实验目的
1、掌握表处理程序设计的基本方法。
2、掌握DOS功能调用的方法。
二、实验内容
1、编写程序,求一给定值X的平方,X的取值范围为0~9;
2、要求X从键盘输入,当输入值不为0~9时给出提示信息,并返回重新输入。 展开
1、掌握表处理程序设计的基本方法。
2、掌握DOS功能调用的方法。
二、实验内容
1、编写程序,求一给定值X的平方,X的取值范围为0~9;
2、要求X从键盘输入,当输入值不为0~9时给出提示信息,并返回重新输入。 展开
1个回答
展开全部
; multi-segment executable file template.
data segment
errmsg db 0dh,0ah,'Your input number is invalid.',0dh,0ah,'$'
sqmsg db 0dh,0ah,'square number is :$'
inmsg db 'Input your number(0-9):$'
data ends
code segment
assume cs:code, ds:data
start:
; set segment registers:
mov ax, data
mov ds, ax
lea dx,inmsg ;
mov ah,9 ;show inmsg string
int 21h ;
毁档蔽mov ah,1 ;read a number
int 21h ;
cmp al,'0'
jb err
cmp al,'9'
ja err
and al,0Fh ;ascii -> real value
mov ah,0
mov bl,al
mul bl ;calculate x*x
mov cx,ax ;save result in ax
lea dx,sqmsg
mov ah,9 ;show information string
int 21h
mov ax,cx
call print ;show result on screen
jmp exit
err:
lea dx,errmsg
mov ah,9 ;show error 纤州message
int 21h
exit:
mov ax, 4c00h ; exit to operating system.
int 21h
;print the value in ax with base 10
print proc near
mov bx,10 ; base 10
xor cx,cx ;cx set 0
Q0:
xor dx,dx
div bx
xor dx,0e30h
蠢含 push dx
inc cx
cmp ax,0
jnz Q0
Q1:
pop ax
int 10h
loop Q1
ret
print endp
code ends
end start ; set entry point and stop the assembler.
追问
有错的啊哥
追答
什么错?知道了,输入错误,没有重新执行。很简单,加两行代码就可以了。
rpt: ;add sign here, before next line
lea dx,inmsg ;
jmp rpt ; add jump, before exit:
exit:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询