导航:首页 > 软件知识 > 如何写一个以字节形式的程序

如何写一个以字节形式的程序

发布时间:2023-01-22 16:48:38

1. 编写C程序调用汇编语言,实现将1K大小的内存块以字节形式复制的另一内存地址

#include<stdio.h>
#define NUM 1024
int main()
{
char strFrom[NUM] = { "good good study, day day up." };
char strTo[NUM];
__asm
{
mov ecx, NUM;
lea esi, strFrom;
lea edi, strTo;
rep movsb;
}
printf("%s\n", strTo);
}

在VC里运行成功。不要用dev-c++,因为dev-c++用的是AT&T的语法。

2. 用汇编语言编写一个多字节压缩BCD加法程序。要求显示被加数、加数及结果。

只显示结果,加数、被加数的显示你自己琢磨吧!


CODESEGMENT
ASSUMECS:CODE

XDB12H,34H,56H
YDB65H,98H,98H
NEQU$-Y
ZDBN+1DUP(0)

START:PUSHCS
POPDS
PUSHCS
POPES;使数据段、附加段与代码在同一段中
MOVCX,N;字节数置入cx
MOVBX,0;基址寄存器置0
CLC;清进位借位标志
@0:
MOVAL,X[BX];将被加数的低字节移入al
ADCAL,Y[BX];带进未的加,加加数的低字节
DAA
MOVZ[BX],AL;将结果移入和的低字节
INCBX;基址寄存器加1
LOOP@0;循环

MOVBYTEPTRZ[BX],0;处理最高位
JNC@01
MOVBYTEPTRZ[BX],1
@01:
LEASI,Z;将和的首地址置入si
MOVCX,N+1;字节数置入cx
CLD
@1:
LODSB;装入和的低字节到al
CALLDSPAL;调用子程序以16进制形式显示(其实是显示bcd数)
LOOP@1;循环

MOVAH,4CH
INT21H

;=============================
DSPALPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHF
MOVCX,2;一个字节只有2位的16进制数
MOVBX,AX;将al保存到bl中
@DSPAL1:
RORBL,1;循环将bl右移4次,即将高位移到右侧
RORBL,1
RORBL,1
RORBL,1
MOVDL,BL;放到dl中
ANDDL,0FH;清掉高位
CMPDL,9;和9比较
JA@DSPAL2;大于即在A~F之间
ADDDL,30H;否则就是0~9,加30H变为ASCii码
JMP@DSPAL3
@DSPAL2:
ADDDL,37H;加37H变为A~F的ASCii码
@DSPAL3:
MOVAH,2
INT21H
LOOP@DSPAL1;循环输出低位
MOVAH,2
MOVDL,'H';显示H
INT21H
MOVDL,32;显示空格
INT21H
POPF
POPDX
POPCX
POPBX
POPAX
RET
DSPALENDP

CODEENDS
ENDSTART

3. 编写一个程序显示你所使用的计算机中的各种数据类型的字节数。

如果你要知道一个int型的字节数可以这样写:
#include<stdio.h>
void main()
{
int x;
x=sizeof(int);
printf("%d",x);
}
其他的同上。

阅读全文

与如何写一个以字节形式的程序相关的资料

热点内容
食品代理批发一个月能赚多少钱 浏览:122
代理生意利润怎么样 浏览:796
暖房小程序审核要多久 浏览:870
徐菜市场在哪里 浏览:911
怎么做康师傅喝开水代理商 浏览:916
为什么安卓市场屡次停止运行 浏览:707
智慧家庭产品怎么买 浏览:8
下塘农贸市场在哪里 浏览:182
成功的交易系统应具备哪些要素 浏览:335
永泰有什么农产品 浏览:112
sqlite如何打开数据库 浏览:292
英雄联盟的登陆程序是哪个 浏览:536
广州外贸服装批发市场在哪里 浏览:351
手机信息里面的字如何调大细 浏览:722
舜天华为代理怎么样 浏览:979
支付平台代理怎么做 浏览:292
淘宝上做虚拟产品怎么发货 浏览:755
mvp方法产品的需求来源有哪些 浏览:657
成都电力技术学院怎么去读 浏览:416
股市交易怎么查询历史 浏览:620