• 汇编语言作业(三)计算这三个数的平均值


    班级:  计算机14-1   姓名: 许恺   学号: 2014011329  日期: 2016.4.1          

    一、编写程序

    1.设有三个无符号的个位数,计算这三个数的平均值(截尾取整),并将这个平均值显示在屏幕上。

    最低要求:三个个位数在数据段中定义,最后结果能显示在屏幕上。

    自由发挥:三个个位数从键盘输入,输入时有提示(可用9号功能调用输出字符串),输出结果也有提示,结果显示在屏幕上,格式要美观。

     

    1)程序清单:

    data segment
    data ends
    code segment
      assume cs:code,ds:data
        main proc far
     start:
      mov ah,01h
      int 21h
      mov dl,al
    
      mov ah,01h
      int 21h
      mov dh,al
    
      mov ah,01h
      int 21h
    
      add al,dl
      add al,dh
    
      mov ah,00h
      mov bl,3
      div bl
      mov bl,al
    
      mov dl,0ah
      mov ah,02h
      int 21h
      mov dl,0dh
      mov ah,02h
      int 21h
    
      mov dl,bl
      mov ah,02h
      int 21h
    
      mov ah,4ch
      int 21h
        main endp
     code ends
     end start

    2)运行结果(截图):

     

    2.编程实现对一个无符号32位数的乘4操作,假定该数乘以4之后仍为一个32位数。

    说明:两个变量X、Y分别定义为DD型数据,其中X代表32位无符号数:12345678H的首地址,Y代表以上数据乘以4以后结果的首地址。乘法要用移位来实现。

    请参见课件中的例题。最后结果存储在内存单元中(无需输出)。

    1)程序清单

    data segment
      x dd 12345678h
      y dd ?
    data ends
    code segment
      assume cs:code,ds:data
        main proc far
     start:
      mov ax,data
      mov ds,ax
    
      mov ax,word ptr x
      mov dx,word ptr x+2
    
      shl ax,1
      rcl dx,1
    
      shl ax,1
      rcl dx,1
    
      mov word ptr y,ax
      mov word ptr y+2,dx
      mov ah,4ch
      int 21h
        main endp
     code ends
     end start

    二、编程体会

    感觉基本的掌握了,但是关于移位等指令和运算还不熟,还有一些基本的dos指令还不会,应该在这方面补补课。

  • 相关阅读:
    杭电1827
    hdu 3118
    poj 2060
    hdu 2236
    poj 2226
    poj 1719
    poj 1466
    poj 3160
    骑士飞行棋笔记
    基础测试学习笔记
  • 原文地址:https://www.cnblogs.com/xukaiae86/p/6439506.html
Copyright © 2020-2023  润新知