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

班级:  计算机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指令还不会,应该在这方面补补课。

原文地址:https://www.cnblogs.com/xukaiae86/p/6439506.html