汇编语言 位操作指令、控制转移指令、系统调用显示功能练习

1. 给出一个数,例如 37H或68H,请将此数显示在屏幕上。
2. 给定三个无符号数(字或字节),求出最大值,并将最大值存入MAX单元,并在屏幕上显示。
3. 上述三个数改为带符号的数
第一题
data segment
    pkey db "press any key...$"
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 al,37h 
    
    push ax
    mov ah,al
    shr ah,4
    
    add ah,30h
    mov dl,ah
    mov ah,2
    int 21h 
    pop ax
        
    and ah,00001111b
    
    add ah,30h
    mov dl,ah
    mov ah,2
    int 21h
    
    mov ax, 4c00h ; exit to operating system.
    int 21h    
ends

end start ; set entry point and stop the assembler.

第二题
assume cs:code,ds:data
data  segment
  buffer dw 13h,19h,17h
  max dw  ?
data  ends
code  segment

  start: 
      mov ax,data
      mov ds,ax
      mov cx,offset max - offset buffer
      shr cx,1      ;对字型数据,数据个数是单元数的一半

      lea bx,buffer
      mov ax,[bx]   ;先设第一个为最大
      inc bx
      inc bx
      dec cx

  again: 
      cmp ax,[bx]
      jnb next
      mov ax,[bx]
  next:
      inc bx
      inc bx
      loop again

      mov max,ax 
      
      ;显示最大值 
      mov al,ah
      shr ah,4 
      add ah,30h    
      mov dl,ah        
      mov ah,2
      int 21h
      
      mov ah,al
      and ah,00001111b
      add ah,30h
      mov dl,ah
      mov ah,2
      int 21h
             
      mov ax,max   
      mov ah,al
      shr al,4 
      add al,30h    
      mov dl,al        
      mov ah,2
      int 21h
      
      mov ax,max
      and al,00001111b
      add al,30h
      mov dl,al
      mov ah,2
      int 21h


      mov ax, 4c00h
      int 21h

  code  ends
  end   start
第三题
稍加修改即可,故略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值