文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

汇编语言功能用循环累加实现乘法

2024-04-02 19:55

关注

问题1:编程计算2的2次方,结果存在ax中

分析:用2+2实现


assume cs:code 
	code segment
		mov ax,2
		add ax,ax 
		;实现程序的返回
		mov ax,4c00h
		int 21h
	code ends
end

问题2:编程实现2的12次方

分析:用loop实现


assume cs:code
	code segment
		mov ax,2		
		mov cx,11	;设置循环次数,只需相加11次
		s:add ax,ax
		loop s
 		mov ax,4c00h
		int 21h
	code ends
end

问题3:编程实现123*236,结果存在ax中

分析:用236相加123次的计算次数比较少,节约计算资源


assume cs:code
	code segment 
		mov ax,236
 		mov cx,122
		s:add ax,ax
		loop s
 		mov ax,4c00h
		int 21h
	code ends
end

问题4:计算ffff:0006单元中的数乘以3,结果存储在dx中

分析:

1、判断数据是否能够存储

因为内存单元中存储的是字节型数据,范围在0~255之间,乘上8之后不会大于16位dx寄存器的存储范围0~65535

2、判断数据相加是否能够位数相同

内存单元是字节单元,如果用寄存器直接相加,数据的长度不一样,所以需要将寄存器变成8位,则只需要将高8位设置为0,用低8位相加即可


assume cs:code
code segment
	;设置地址指向为ffff:0006
	mov ax,0ffffh   ;字母开头的常量前面需要加0
	mov ds,ax
	mov bx,6	;ds:bx则为数据的指向 
	mov al,ds:[bx]
	mov ah,0
 	mov dx,0	;初始化寄存器中的内容
 	mov cx,3	;因为不是自身相加,所以需要3次
	s:add dx,ax
	loop s
 	mov ax,4c00h
	int 21h		;程序返回
 
code ends
end

问题5:计算ffff:0~ffff:b单元中的数据的和,结果存储在dx中

分析:

1、运算的结果是否超出寄存器的范围

12个字节型数据的相加,结果不会超过65535

2、能否直接相加dx中的数据

8位的数据不能直接相加到16位的寄存器中,如果用低8位进行相加,结果可能会超出8位存储的范围,所以只能先将数据存放到16位的寄存器中,在与dx相加


assume cs:code
code segment
	mov ax,0ffffh
	mov ds,ax
	mov bx,0	;ds:bx指向ffff:0 
	mov dx,0 
	mov cx,12	;12次到ffff:b 
s:	mov al,ds:[bx]
	mov ah,0
	add dx,ax	;利用ax进行相同位数的相加
	inc bx 		;向后移动一个单元
	loop s 
	mov ax,4c00h
	int 21h
 
code ends
end

问题6:计算data段中第一组数据的3次方,结果保存在后面一组的dword单元中

分析:

1、需要利用一个子程序包装出计算的功能

2、同时需要两个寄存器分别保存和修改其中的内容


assume cs:code,ds:data
data segment
	dw 1,2,3,4,5,6,7,8
	dw 8 dup(0)
data ends 
code segment
start:	mov ax data
		mov ds,ax
		mov si,0		;ds:si指向第一组word单元
		mov di,16		;ds:di指向第二组dword单元 
		mov cx,8
s:		mov bx,ds:[si]
		call cube
		mov ds:[di],ax		;计算的结果低16位保存在ax中
		mov ds:[di+2],dx	;计算的结果高16位保存在dx中
		add si,2		;ds:si指向下一个word单元
		add di,4		;ds:di指向下一个dword单元
		loop s 
		mov ax,4c00h
		int 21h 
cude:	mov ax,bx
		mul bx
		mul bx
		ret
 
code ends
end start

以上就是汇编语言功能用循环累加实现乘法的详细内容,更多关于汇编语言循环累加实现乘法的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯