实验三
实验项目名称: ARM处理器汇编语言编程:
实验目的和要求:练习汇编语言指令、伪指令语句的应用 实验原理:编程汇编语言源程序,实现题目要求。
主要仪器设备:台式计算机、windows操作系统、应用软件等。 实验方法与步骤:1、编写汇编程序,编译程序。
2、运行程序,观察结果。
实验数据记录、处理及结果分析。
4-8、编写程序,统计20个数据中的所有位中的1的个数,如果为奇数则在R0中存放1,如果为偶数则在R0中存放0。 ;dh存放偶数个数,dl存放奇数个数。 assume cs:codesg,ds:data
data segment
DW 4,89,25,234,956,1,25325,7,9768,12134 data ends
codesg segment start:
mov ax,data mov ds,ax mov si,0
mov dx,0 mov cx,10 mov bl,2 s:
mov ah,0 mov al,[si] div bl cmp ah,0 je seven suneven: inc dl
jmp short ok seven: inc dh ok:
add si,2 loop s
mov ax,4c00h int 21h codesg ends end start
4-9、用汇编语言编写程序实现:寄存器R0和R1中有两个正整数,求这两个数的最大公约数,结果存储在R0中。 原理 辗转相除法.
当两个数都较大时,采用辗转相除法比较方便.其方法是:
以小数除大数,如果能整除,那么小数就是所求的最大公约数.否则就用余数来除刚才的除数;再用这新除法的余数去除刚才的余数.依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数.
area expmple,code,readonly entry
start mov r1,#12 mov r0,#2