例6:设缓冲区DATA中有一组单字节有符号数,以0为结束标志。写一个程序实现如下功能:把前5个正数依次送入缓冲区PDATA,把前5个负数依次送入缓冲区MDATA;如正数或负数不足5个,则用0补足。

自解:


 1 DSEG SEGMENT
2 DATA DB -1,1,-2,2,3,-3,-4,4,5,-5,-6,6,0
3 PDATA DB 0,0,0,0,0
4 MDATA DB 0,0,0,0,0
5 DSEG ENDS
6 ;------------------------------------
7 CSEG SEGMENT
8 ASSUME DS:DSEG,CS:CSEG
9 START:
10 MOV AX,DSEG
11 MOV DS,AX
12
13 MOV BX,OFFSET DATA
14 XOR SI,SI
15 XOR DI,DI
16 MOV AL,0
17 DEC BX
18 UP: INC BX
19 AGAIN:CMP AL,[BX]
20 JZ OK
21 JG NEXT
22 CMP DI,5
23 JAE UP
24 INC DI
25 MOV DH,[BX]
26 MOV MDATA[DI],DH
27 INC BX
28 JMP AGAIN
29 NEXT:
30 CMP SI,5
31 JAE UP
32 INC SI
33 MOV DL,[BX]
34 MOV PDATA[SI],DL
35 INC BX
36 JMP AGAIN
37
38 OK: MOV AH,4CH
39 INT 21H
40 CSEG ENDS
41 END START

例解:

  


 1 MAX_COUNT = 5
2 DSEG SEGMENT
3 DATA DB 3,-4,5,6,-7,8,-9,-10,-1,-32,-123,27,58,44,-12,0
4 PDATA DB MAX_COUNT DUP(?)
5 MPATA DB MAX_COUNT DUP(?)
6 DSEG ENDS
7 ;------------------------------------------------------
8 CSEG SEGMENT
9 ASSUME DS:DSEG,CS:CSEG
10 START:
11 MOV AX,DSEG
12 MOV DS,AX
13
14 MOV CX,MAX_COUNT
15 MOV SI,OFFSET PDATA
16 MOV DI,OFFSET MPATA
17 MOV AL,0
18 NEXT1: MOV [SI],AL
19 MOV [DI],AL
20 INC SI
21 INC DI
22 LOOP NEXT1
23
24 MOV BX,OFFSET DATA
25 XOR DI,DI
26 XOR SI,SI
27 NEXT2: MOV AL,[BX]
28 INC BX
29 CMP AL,0
30 JZ OK
31 JG PLUS
32 CMP DI,MAX_COUNT
33 JAE CONT
34 MOV MPATA[DI],AL
35 INC DI
36 JMP SHORT CONT
37 PLUS: CMP SI,MAX_COUNT
38 JAE CONT
39 MOV PDATA[SI],AL
40 INC SI
41 JMP SHORT CONT
42 CONT: MOV AX,SI
43 ADD AX,DI
44 CMP AX,MAX_COUNT+MAX_COUNT
45 JB NEXT2
46 OK: MOV AH,4CH
47 INT 21H
48 CSEG ENDS
49 END START

例6:设缓冲区DATA中有一组单字节有符号数,以0为结束标志。写一个程序实现如下功能:把前5个正数依次送入缓冲区PDATA,把前5个负数依次送入缓冲区MDATA;如正数或负数不足5个,则用0补足。,布布扣,bubuko.com

时间: 2024-10-07 07:36:37

例6:设缓冲区DATA中有一组单字节有符号数,以0为结束标志。写一个程序实现如下功能:把前5个正数依次送入缓冲区PDATA,把前5个负数依次送入缓冲区MDATA;如正数或负数不足5个,则用0补足。的相关文章

小南刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗? 输入 第一行输入一个整数N,表示测试数据的组数(1<N<1000) 每组测试数据只有一行,是一个整数M(

#include<stdio.h> int main() { int n; int m; int i; int num=0; int a[32]; scanf("%d",&n); while(n--) { scanf("%d",&m); i=-1; while(m!=0) { i++; a[i]=m%2; m=m/2; } num=0; for(;i>-1;i--) { //    printf("%d",a[i

炫!一组单元素实现的 CSS 加载进度提示效果

之前的文章个大家分享过各种类型的加载效果(Loading Effects),这里再给大家奉献一组基于单个元素实现的 CSS 加载动画集合.这些加载效果都是基于一个 DIV 元素实现的,十分强悍. 温馨提示:为保证最佳的效果,请在 IE10+.Chrome.Firefox 和 Safari 等现代浏览器中浏览. 您可能感兴趣的相关文章 太赞了!超炫的页面切换动画效果[附源码下载] 创意无限!一组网页边栏过渡动画[附源码下载] 好东西!动感的页面加载动画效果[附源码下载] 使用 CSS3 实现3D图

如何写一个比较严谨的单例Singleton模式

iOS真正意义上的单例模式: 我们在程序中很多时候要保证一个类只有一个唯一的实例,一般情况下初始化对象是通过[[Class alloc]init]来完成的,alloc是分配内存空间,init是对象的初始化,分配对象内存空间的另一个方法是allocWithZone方法,实际操作中当调用alloc方法来给对象分配空间时,默认也调用了allocWithZone方法.如果我们在初始化对象的时候没有使用alloc方法,而是直接使用allocWithZone方法的话,就没法保证这个单例是真正意义上的单例了,

关于java写一个单例类(面试手写题)

package com.shundong.javacore; /** * java写一个简单的单例类 * @author shundong * */ class Singleton { //使用一个类变量来缓存曾经创建的实例 private static Singleton instance; //对构造进行隐藏(private) private Singleton(){} /** * 提供一个静态方法 * 该方法加入了自定义控制 保证只产生一个Singleton对象 * @return 返回S

单字节的FIFO缓存(30天自制操作系统--读书笔记)

从今天起,写一些读书笔记.最近几个月都在看<30天自制操作系统这本书>,书虽说看的是电子书,但可以花钱买的正版书,既然花费了金钱,就总得有些收获. 任何人都不能总是固步自封,想要进步就得学习别人的知识,对于程序员而言,最简单的方法即是学习别人的代码. 今天的标题是“单字节的FIFO缓存”,其实就是做一个FIFO,看名字就知道了.也就4个函数和1个相关结构体,这样的小代码在嵌入式系统中很常用,也会很好用. 1.相关数据结构体 struct FIFO8 { unsigned char *buf;

java单链表的实现自己动手写一个单链表

单链表:单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素.链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据.自己手动写一个单链表:首先,定义一个节点类: package com.wei; public class Link { public int data;// 存放数据 public Link next;// 存放下一个节点 public Link(

Java语言中有4种访问修饰符

转载:http://wuhaidong.iteye.com/blog/851754 在Java语言中有4中访问修饰符:package(默认).private.public和protected. 1.package是默认的保护模式,又加做包访问,没有任何修饰符时就采用这种保护模式.包访问允许域和方法被同一个包内任何类的任何方法访问.(包内访问). 2.private标识得访问模式,表示私有的域和方法只能被同一个类中的其他方法访问,实现了数据隐藏:必要时,可以通过方法访问私有变量.(类内访问). 3

一个程序员的书单

分享一份我的书单. 活了这么久,读过的所有书加起来也不足200本,仅相当于一个普通以色列人两年的阅读量而已,还好,让人欣慰的是,没给祖国拖后腿.(2011年人均图书年阅读量:以色列64本,欧美国家约20本,韩国10本,中国4本(如扣除教科书,人均不足一本) ). 欢迎使用[豆瓣读书] 管理你的阅读,查阅书评,编写读书笔记等. ^^ app下载:http://itunes.apple.com/cn/app/id695492935 纸牌屋 迈克尔·道布斯 / 何雨珈 / 百花洲文艺出版社 / 201

Could not load file or assembly &#39;System.Data.SQLite&#39; or one of its dependencies. 试图加载格式不正确的程序。

出现上述问题的原因是,所加载的程序集中有32位的,也有64位的,IIS 7 程序池 在Windows下.Net FrameWork是64位的,要想正确使用,需要对程序池进行配置.如下图所示: Could not load file or assembly 'System.Data.SQLite' or one of its dependencies. 试图加载格式不正确的程序.