用汇编编写一个小程序,从键盘输入两个一位的数字进行相加,代码怎么写

用汇编编写一个小程序,从键盘输入两个一位的数字进行相加,代码怎么写,第1张

MOV AH,01

INT 21H

MOV BL,AL

MOV AH,01

INT 21H

SUB AL,30H

SUB BL,30H

ADD AL,BL

相加后结果保存在AL中

1自0500H单元开始,存有100个数。要求把它传送到1000H开始的存储区中,但在传送过程中要检查数的值,遇到第一个零就停止传送。

mov si,0500h

mov cx,100

mov di,1000h

next:

mov al,[si]

cmp al,0

jz tj

mov [di],al

inc si

inc di

loop next

tj:

mov ax,4c00h

int 21h

若自0500H单元开始有1000个带符号的数,把它们的最小的值找出来,并且放在1000H单元中。

mov si,0500h

mov cx,1000

mov al,[si]

next:

cmp al,[si+1]

jl next1

mov al,[si+1]

next1:

inc si

loop next

mov [1000h],al

mov ax,4c00h

int 21h

1、OR AL,00110000B 或者OR AL,0C0H

2、MOV AL,ES:[COUNT]

MOV AH,0

PUSH AX

3、TEST AL,03H

JZ ZERO

4、定义宏指令MOVE,使它能将N个字符从一个字符区传送到另一个字符区。

MOVE MACRO

MOV CX,N

LEA SI,SRC

LEA DI,DST

CLD

REP MOVSB

ENDM

#include< reg51h>

#include< stdioh>

#include< stringh>

#define INBUF_LEN 4 //数据长度

unsigned char inbuf1[INBUF_LEN];

unsigned char checksum,count3 , flag,temp,ch;

bit read_flag=0;

sbit cp=P1^1;

sbit DIR=P1^2;

int i;

unsigned int xdata RAMDATA; /定义RAM地址指针/

unsigned char a[6] ={0x11,0x22,0x33,0x44,0x55,0x66} ;

void init_serialcomm(void)

{

SCON=0x50; //在110592MHz下,设置串行口波特率为9600,方式1,并允许接收

PCON=0x00;

ES=1;

TMOD=0x21; //定时器工作于方式2,自动装载方式

TH0=(65536-1000)%256;

TL0=(65536-1000)/256;

TL1=0xfd;

TH1=0xfd;

ET0=1;

TR0=1;

TR1=1;

// TI=0;

EA=1;

// TI=1;

RAMDATA=0x1F45;

}

void serial () interrupt 4 using 3

{

if(RI)

{ RI=0;

ch=SBUF;

TI=1; //置SBUF空

switch(ch)

{

case 0x01 :printf("A"); TI=0;break;

case 0x02 :printf("B"); TI=0;break;

case 0x03 :printf("C"); TI=0;break;

case 0x04 :printf("D"); TI=0;break;

default :printf("fg"); TI=0;break;

}

}

}

//向串口发送一个字符

void timer0() interrupt 1 using 3{

// char i;

flag++;

TH0=0x00;

TL0=0x00;

if(flag==10)

{// cp=!cp;

// for(i=0;i<6;i++)

P2=0x25;

TI=1;

temp=RAMDATA;

printf("%c",temp);

TI=0;

// RAMDATA--;

flag=0;

}

}

//主程序

main()

{

init_serialcomm(); //初始化串口

//向6264中送数据

{

RAMDATA=0x33;

}

while(1)

{

RAMDATA=0x33;;

}

}

AREA StrCopy, CODE, READONLY

ENTRY ; mark the first instruction to call

start

LDR r1, =srcstr ; pointer to first string

LDR r0, =dststr ; pointer to second string

BL strcopy ;

call subroutine to do copy

stop

MOV r0,

#0x18

LDR r1,

=0x20026

SWI

0x123456

strcopy

LDRB r2, [r1],#1

STRB r2, [r0],#1

CMP r2, #0

BNE strcopy

MOV pc,lr ;

Return

AREA Strings, DATA, READWRITE

srcstr DCB First string - source,0

dststr DCB Second string - destination,0

END

试试,

以上就是关于用汇编编写一个小程序,从键盘输入两个一位的数字进行相加,代码怎么写全部的内容,包括:用汇编编写一个小程序,从键盘输入两个一位的数字进行相加,代码怎么写、请汇编达人帮编两个小程序~~、用汇编语言编写完成下列功能的小程序段。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10157803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存