没啥好说的,总结我电一波实验题目,关于汇编的……
题目要求
实验一 EMU8086使用及8086指令系统
· 编写一个简单的程序:将“This is my first ASM program-姓名(汉语拼音各人的姓名)”放在DS=1000H,BX=0000H开始的存储器单元中,然后将该内容搬移到BX=0100H开始的单元中,最后将该字符串通过DOS功能调用显示在屏幕上。
实验二 数制转换与数值运算编程
· 2.1 将ASCII码表示的十进制数转换为二进制数。
· 2.2 BCD码转换为二进制数
· 2.3 两个非压缩BCD数加法程序。
· 2.4 从键盘上输入任意两个不大于2位数的正整数,计算其乘积。结果在屏幕上显示。
实验三 顺序、分支、循环、子程序设计
· 3.1 教材P74例1。m=6,n=4,w=7。结果Q也放在内存中。
· 3.2 教材P75例3。
· 3.3 从键盘上输入1个数,判断其奇偶性,如果是奇数,屏幕上显示”It is odd”,否则显示”It is even”。
· 3.4 从键盘上输入N个字符(N<16),求这N个字符中’A’的个数,并将’A’的个数显示在屏幕上。
· 3.5 已知BUF1中有N1个按从小到大的顺序排列的互不相等的无符号数,BUF2中有N2个从小到大的顺序排列的互不相等的无符号数。编写程序将BUF1和BUF2中的数合并到BUF3中,使在BUF3中存放的数互不相等且按从小到大的顺序排列。
实验四 综合性汇编程序设计
· 4.1 计算S=1+2×3+3×4+4×5+…+N(N+1),直到N(N+1)项大于200为止。
· 4.2 求N!。N为键盘输入的不大于8的正整数。
· 4.3 从键盘输入一行字符(以回车符结束),并按字母、数字及其它字符分类计数,最后显示出这3个计数结果。
程序清单及结果:
1.
1 name "mycode" 2 org 100h 3 ; set segment register: 4 mov ax, 1000h 5 mov ds, ax 6 mov bx,0000h 7 ; print "This is my first ASM program-WangYuBo" 8 mov [02h], 'T' 9 mov [04h], 'h' 10 mov [06h], 'i' 11 mov [08h], 's' 12 mov [0ah], ' ' 13 mov [0ch], 'i' 14 mov [0eh], 's' 15 mov [10h], ' ' 16 mov [12h], 'm' 17 mov [14h], 'y' 18 mov [16h], ' ' 19 mov [18h], 'f' 20 mov [1ah], 'i' 21 mov [1ch], 'r' 22 mov [1eh], 's' 23 mov [20h], 't' 24 mov [22h], ' ' 25 mov [24h], 'A' 26 mov [26h], 'S' 27 mov [28h], 'M' 28 mov [2ah], ' ' 29 mov [2ch], 'p' 30 mov [2eh], 'r' 31 mov [30h], 'o' 32 mov [32h], 'g' 33 mov [34h], 'r' 34 mov [36h], 'a' 35 mov [38h], 'm' 36 mov [3ah], '-' 37 mov [3ch], 'W' 38 mov [3eh], 'a' 39 mov [40h], 'n' 40 mov [42h], 'g' 41 mov [44h], 'Y' 42 mov [46h], 'u' 43 mov [48h], 'B' 44 mov [4ah], 'o' 45 mov cx,0025h ;一共37个字符 46 mov bx,0100h 47 mov si,0002h 48 ;string copy 49 copy: 50 mov ax,ds:[si] 51 mov ds:[bx+si],ax 52 add si,2 53 loop copy 54 mov bx,0102h 55 mov cx,0025h 56 ;printf string 57 printf: 58 mov dl,[bx] 59 mov ah,02h 60 int 21h 61 add bx,2 62 loop printf 63 mov ah,1 64 int 21h 65 66 mov ah,4ch 67 int 21h 68 ret