彙編實驗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

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