汇编语言实验1

  1. 实验内容
    1) 给出一个数,例如37H或68H,请将此数显示在屏幕上。
    2) 给定三个无符号数(字或字节),求出最大值,并将最大值存入MAX单元并在屏幕上显示。
    3) 上述三个数改为带符号的数

  2. 源代码
    1)

data segment
    ; add your data here!
    pkey db "press any key...$"
    x db 37H;68H
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

    ; add your code here
    mov bl, x

    mov ch,2          
    mov cl,4
rotate:
    rol bl,cl
    mov al,bl
    and al,0FH
    add al,30H
    cmp al,3AH
    jl printit
    add al,7H
printit:    
    mov dl,al 
    mov ah,2
    int 21H
    dec ch
    jnz rotate

    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

2)

data segment
    ; add your data here!
    pkey db "press any key...$"
    MAX dw ? 
    x dw 3000H
    y dw 3100H
    z dw 0F200H
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

    ; add your code here
    mov ax, x 
    cmp ax, y
    jb maxy
    cmp ax, z
    jb maxz
    jmp maxx   
maxy:
    mov ax, y
    cmp ax, z 
    jb maxz
    jmp maxx
maxz:
    mov ax, z
maxx:
    mov MAX, ax

    mov bx, max    
    mov ch,4          
    mov cl,4
rotate:
    rol bx,cl
    mov al,bl
    and al,0FH
    add al,30H
    cmp al,3AH
    jl printit
    add al,7H
printit:    
    mov dl,al 
    mov ah,2
    int 21H
    dec ch
    jnz rotate

    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

3)

data segment
    ; add your data here!
    pkey db "press any key...$"
    MAX dw ? 
    x dw 3000H
    y dw 3100H
    z dw 0F200H
ends

stack segment
    dw   128  dup(0)
ends

code segment
start:
; set segment registers:
    mov ax, data
    mov ds, ax
    mov es, ax

    ; add your code here
    mov ax, x 
    cmp ax, y
    jl maxy
    cmp ax, z
    jl maxz
    jmp maxx   
maxy:
    mov ax, y
    cmp ax, z 
    jl maxz
    jmp maxx
maxz:
    mov ax, z
maxx:
    mov MAX, ax

    mov bx, max    
    mov ch,4          
    mov cl,4
rotate:
    rol bx,cl
    mov al,bl
    and al,0FH
    add al,30H
    cmp al,3AH
    jl printit
    add al,7H
printit:    
    mov dl,al 
    mov ah,2
    int 21H
    dec ch
    jnz rotate

    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

猜你喜欢

转载自blog.csdn.net/qq_41579622/article/details/81633500