汇编语言习题求解给个答案,谢谢了

问题描述

汇编语言习题求解给个答案,谢谢了

认真阅读以下代码,请判断该程序的功能及运算完成后数据区的数据排列。

DATA SEGMENT
BUF DB 0AH,8F,15H,36H,0A6,20H,12H
N = $-BUF

DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN: MOV AX,DATA
MOV DS,AX
MOV SI,1

NEXT1: MOV DI,SI

INC DI
MOV AL,[BUF+SI-1]

NEXT2: CMP AL,[BUF+DI-1]

JAE NEXT3

XCHG [BUF+DI-1],AL

MOV [BUF+SI-1],AL
NEXT3: INC DI

CMP DI,N

JBE NEXT2

INC SI

CMP SI,N-1

JBE NEXT1

MOV AH,4CH
INT 21H
CODE ENDS
END BEGIN

解决方案

  ;声明DATA段,声明常量数组BUF
DATA SEGMENT
  BUF DB 0AH,8FH,15H,36H,0A6,20H,12H
  N = $-BUF
DATA ENDS

  ;声明CODE段
CODE SEGMENT
  ;设置CS指向CODE段,DS指向DATA段
  ASSUME CS:CODE,DS:DATA
  ;设置DS,SI
  BEGIN: MOV AX,DATA
  MOV DS,AX
  MOV SI,1

NEXT1:
  ;将SI的值赋给DI
  MOV DI,SI
  INC DI
  MOV AL,[BUF+SI-1]

NEXT2:
  ;比较AL,[BUF+DI-1]地址的内容
    ;若>=,则跳转到NEXT3
  CMP AL,[BUF+DI-1]
  JAE NEXT3
    ;否则互换[BUF+DI-1]地址的内容与AL的内容
  XCHG [BUF+DI-1],AL
    ;用AL的值覆盖[BUF+SI-1]地址指向的内容(还是原内容)
  MOV [BUF+SI-1],AL

NEXT3:
  INC DI
    ;比较DI与N,结果为<=,跳到NEXT2
  CMP DI,N
  JBE NEXT2
  INC SI
    ;比较SI与N-1,结果为<=,跳到NEXT1
  CMP SI,N-1
  JBE NEXT1
    ;调用DOS系统4C号功能(?没找到DOS 4C号功能)
  MOV AH,4CH
  INT 21H
CODE ENDS

解决方案二:

《汇编语言》习题1

时间: 2024-11-03 23:04:42

汇编语言习题求解给个答案,谢谢了的相关文章

c语言-C语言递归的数字转换问题,习题求解

问题描述 C语言递归的数字转换问题,习题求解 C语言使用递归算法将一个正整数字符串为对应的数值.不得使用循环 解决方案 c语言没有默认参数吧,改为: #include <stdio.h> int fun(char *p,int m) { int n=1; if(*p) { n=m*10+*p-'0'; return fun(p+1,n); } return m; } void main() { char str[]="1234"; printf("%d "

derived class-一道简单的C++习题,求标准答案!

问题描述 一道简单的C++习题,求标准答案! Define a class DATE including current year month and day. You may search in MSDN with keywords ""tm"" to know how to get the current date. Define a derived class BIRTHDAY of DATE saving someone's birthday with ye

汇报语言-汇编语言练习题,求正确答案

问题描述 汇编语言练习题,求正确答案 如图 解决方案 1立即 2寄存器间接 3寄存器相对 解决方案二: 4直接 5寄存器 6立即 解决方案三: 7立即 8基址变址 9基址变址相对 解决方案四: 10直接 11寄存器

HDU4561 一直WA 不知道哪里错了 跪求提示 java版 不想直接拿答案谢谢

问题描述 HDU4561 一直WA 不知道哪里错了 跪求提示 java版 不想直接拿答案谢谢 package arithmetic; import java.util.Scanner; public class Main { public static int maxProduct(int[] list,int start,int end){ int sum=0;//记录数组中-2的个数[start,end) if(start==end||start+1==end){ return 0; } f

unix-apue习题3.4的答案,为什么要关闭描述符3

问题描述 apue习题3.4的答案,为什么要关闭描述符3 答案说3个描述符指向同一个文件表项,所以不需要关闭 fd为3 4个描述符指向同一个文件表项,所以要关闭fd3 3个可以,4个不可以,为什么有这样的数量的限制,有什么意义么

急..........求解Extjs问题 先谢谢了

问题描述 tbar : [{ id : 'addDiction', text : '新增', iconCls : 'option', handler : function() {var form =new Ext.form.FormPanel({ layout : 'table', layoutConfig : { columns : 2 }, defaults : { layout:'form' }, items:[ {items: [tdictiontype]}, {items: [ttyp

求解~!!!谢谢~~!!!

问题描述 我是一名初学者正在书本上做门票销售计算器做完后C#出现了错误说是:当前上下文中不存在"CommonPrice"何解~~~书上这个变量就是这么打的是否书上打错还是我哪里错了~~~usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSyste

本人怎么觉得AB都对呢!请给我个答案 谢谢。SCJP

问题描述 解决方案 解决方案二:沙发自己做!解决方案三:synchronized解决方案四:也许他的意思是光synchronized这个方法不行要把整个MyLogger的对象都synchronized了就对了解决方案五:引用楼主dsds90的回复:以下我自己的看法,各位大虾指点:首先,可以确定这道题考的是线程安全问题,解决线程安全有多个方法,其中包括:1.+synchronized2.+锁3.应用线程安全的API等等.其次,关于StringBuilder和StringBuffer的区别最根本的不

linux下使用java.awt,程序无法进入构造方法。求解

问题描述 weblogic8,jdk1.42(别骂我,老项目在改造)在windows下使用正常,但是部署到linux下,图像显示的类无法进入构造方法.个人猜测是使用了java.awt包导致的,于是在startWeblogic.sh配置了-Djava.awt.headless=true结果还是无效.具体的类如下:packagecom.estar.util.image;importjavax.imageio.ImageIO;importjavax.imageio.IIOException;impor