weixin_75151975 2023-04-16 16:41 采纳率: 88.2%
浏览 27
已结题

求以下汇编语言问题2

求以下汇编语言程序设计

img


问题的解答,问题描述如图,使用的是8086/8088版本

  • 写回答

3条回答 默认 最新

  • 努力の小熊 2023-04-16 17:23
    关注

    (1)PUSH 8243H
    语法错误。PUSH 指令通常用于将寄存器或内存中的值压入堆栈。在这里,应该使用一个寄存器而不是一个立即数。可以将立即数加载到寄存器,然后将寄存器值推入堆栈。例如:
    MOV AX, 8243H
    PUSH AX
    (2)POP AL
    语法错误。POP 指令用于从堆栈弹出值并将其存储在寄存器或内存中。在这里,AL 是一个 8 位寄存器,但 POP 指令要求使用 16 位寄存器。可以更改为使用 16 位寄存器,例如 AX:
    POP AX
    (3)MOV AL, 6543H
    语法错误。AL 是一个 8 位寄存器,而立即数 6543H 是一个 16 位值。可以将立即数更改为 8 位值,例如:
    MOV AL, 43H
    (4)ADD [0100H], 64H
    语法正确。这条指令表示将内存地址 0100H 处的值与立即数 64H 相加,并将结果存储在内存地址 0100H 处。

    (5)ADC VAR1, VAR2
    假设 VAR1 和 VAR2 已经在程序中定义为变量,则此指令是语法正确的。

    (6)MOV DS, ES
    语法错误。无法直接在两个段寄存器之间传输数据。可以先将 ES 寄存器的值移动到通用寄存器,然后将其移动到 DS 寄存器。例如:
    MOV AX, ES
    MOV DS, AX
    (7)MOV DS, 0620H
    语法正确。这条指令将立即数 0620H 移动到段寄存器 DS。

    (8)LEA BX, AX
    语法错误。LEA(Load Effective Address)指令用于加载有效地址到寄存器。这里的源操作数应该是一个内存地址,而不是一个寄存器。例如:
    LEA BX, [AX]
    (9)DEC AL, AH
    语法错误。DEC(递减)指令用于将操作数递减 1。这个指令只需要一个操作数。例如:
    DEC AL
    (10)SHR BL, 3
    语法正确。这条指令表示将 BL 寄存器的值逻辑右移 3 位。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月24日
  • 已采纳回答 4月16日
  • 创建了问题 4月16日

悬赏问题

  • ¥100 需要跳转番茄畅听app的adb命令
  • ¥50 寻找一位有逆向游戏盾sdk 应用程序经验的技术
  • ¥15 请问有用MZmine处理 “Waters SYNAPT G2-Si QTOF质谱仪在MSE模式下采集的非靶向数据” 的分析教程吗
  • ¥50 opencv4nodejs 如何安装
  • ¥15 adb push异常 adb: error: 1409-byte write failed: Invalid argument
  • ¥15 nginx反向代理获取ip,java获取真实ip
  • ¥15 eda:门禁系统设计
  • ¥50 如何使用js去调用vscode-js-debugger的方法去调试网页
  • ¥15 376.1电表主站通信协议下发指令全被否认问题
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证