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