网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月13日漏签0天
编程吧 关注:372,032贴子:1,634,126
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 4回复贴,共1页
<<返回编程吧
>0< 加载中...

求助各位大佬们,汇编语言题

  • 只看楼主
  • 收藏

  • 回复
  • 拜托了乐园
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1、编程实现两个48位数的减法,设被减数存放在DS:0100H开始的6个存储单元中,减数存放在DS:0200H开始的6个存储单元中,两数之差存入DS:0300H开始的6个存储单元中。


  • 宇文进
  • 人气楷模
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
MOV AX, 0100H ; AX = DS:0100H,被减数的地址
MOV DS, AX ; 将DS设置为被减数的段地址
MOV SI, 0 ; SI = 0,偏移地址
MOV AX, 0200H ; AX = DS:0200H,减数的地址
MOV ES, AX ; 将ES设置为减数的段地址
MOV DI, 0 ; DI = 0,偏移地址
MOV CX, 6 ; 循环6次,处理6个存储单元
SUB_LOOP:
MOV AL, [DS:SI] ; 将被减数的值加载到AL寄存器
SUB AL, [ES:DI] ; 从AL寄存器中减去减数的值
MOV [DS:0300H+SI], AL ; 将差值存储在DS:0300H开始的6个存储单元中
INC SI ; 增加被减数的偏移地址
INC DI ; 增加减数的偏移地址
LOOP SUB_LOOP ; 继续循环,直到CX为零
MOV AH, 4CH ; 退出程序
INT 21H
请注意,上述程序假定被减数和减数都是以字节为单位存储的,并且存储顺序是从低地址到高地址。您需要将此程序保存为一个汇编语言文件,例如subtract.asm,然后使用适当的汇编器和链接器将其转换为可执行文件。具体的工具和命令取决于您使用的汇编语言和操作系统。


2025-06-13 00:08:56
广告
  • 宇文进
  • 人气楷模
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
MOV AX, 0052HMOV BX, 0078HMOV CL, 8ROL AX, CL
MOV AX, 0052H 将立即数 0052H(十进制为 82)赋值给 AX 寄存器。此时 AX = 0052H。
MOV BX, 0078H 将立即数 0078H(十进制为 120)赋值给 BX 寄存器。此时 BX = 0078H。
MOV CL, 8 将立即数 8 赋值给 CL 寄存器。此时 CL = 8。
ROL AX, CL 是一个循环左移指令,它将 AX 寄存器的值循环左移 CL 次。在这种情况下,将 AX 的值循环左移 8 位(1 字节)。循环左移的效果是将 AX 的高 8 位移动到低 8 位,并将低 8 位移动到高 8 位。循环左移 8 位等效于循环左移 1 字节。
在初始情况下,AX 的二进制表示为:0000 0000 0101 0010。
循环左移 1 字节后,AX 的二进制表示为:0101 0010 0000 0000。
转换为十六进制为:52H 00H。
因此,最终 AX = 5200H。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回编程吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示