汇编实验3

题目:编写程序提示用户输入两个十进制无符号两位数,要求比较两个数的大小并显示结果.

示例1:
Enter an integer1: 39
Enter an integer2: 8 2
39<82
示例2:
Enter an integer1:28
Enter an integer2:28
28=28

DATAS SEGMENT
    ;此处输入数据段代码  
    string  db 10
    		db ?
    		db 10 dup('$')
   	string1 db "Enter an integer1: $" 
   	string2 db "Enter an integer2: $" 
   	num1 db ?
   	num2 db ?
   	stringnum1 db 10 dup('$')
   	stringnum2 db 10 dup('$')
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    mov dx,offset string1;输出string1的内容
    mov ah,09h
    int 21h
  
    mov dx,offset string;读入一个字符串,即一个两位数
    mov ah,0ah
    int 21h
    
    mov al,string[2];将这个两位数存到另一个字符串
    mov stringnum1[0],al
    mov al,string[3]
    mov stringnum1[1],al
   	
    
    mov cl,[string+2];以ascii码的形式存num1,即这个两位数
    sub cl,'0'
    mov ch,[string+3]
    sub ch,'0'
    mov num1,ch
    mov al,cl
    mov bl,10d
    mul bl
    mov cl,al
    add num1,cl
  
    mov dl,0ah;输出回车
    mov ah,02h
    int 21h
    
    mov dx,offset string2;以同样的操作存num2
    mov ah,09h
    int 21h
  
    mov dx,offset string 
    mov ah,0ah
    int 21h
    
    mov al,string[2]
    mov stringnum2[0],al
    mov al,string[3]
    mov stringnum2[1],al
   	
   	
    mov cl,[string+2]
    sub cl,'0'
    mov ch,[string+3]
    sub ch,'0'
    mov num2,ch
    mov al,cl
    mov bl,10d
    mul bl
    mov cl,al
    add num2,cl
    
    mov dl,0ah
    mov ah,02h
    int 21h
    
	;输出
    mov dx,offset stringnum1
	mov ah,09h
	int 21h
	
	
	mov al,num1
	cmp al,num2
	je equal
	jb below
	ja above
	
	equal: 
	mov dl,'='
	mov ah,02h
	int 21h
	jmp ttt
	below:
	 mov dl,'<'
	mov ah,02h
	int 21h
    jmp ttt
    above:
	mov dl,'>'
	mov ah,02h
	int 21h
    ttt:
    mov dx,offset stringnum2
	mov ah,09h
	int 21h
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章