将1,2,3,4,5分别送到数据段偏移地址为1000H开始的连续5个存储单元中,用汇编语言???

如题所述

第1个回答  2012-04-13
DATA SEGMENT
ORG 1000H
DA DB 10 DUP (?)
DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV DA,1
MOV DA+1,2
MOV DA+2,3
MOV DA+3,4
MOV DA+4,5

MOV AX,4C00H
INT 21H
CODE ENDS
END START
有什么问题随时提出,望采纳~本回答被提问者采纳
第2个回答  2012-04-04
ORG 1000H
num db 1,2,3,4,5追问

DATA SEGMENT
DA DB 1,2,3,4,5
DATA ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
ORG 1000H
MOV SI,[DA]
MOV SI+1,[DA+1]
MOV SI+2,[DA+2]
MOV SI+3,[DA+3]
MOV SI+4,[DA+4]
MOV AX,4C00H
INT 21H
CODE ENDS
END START
这么做行吗,我刚学不懂

追答

不行
调试过你的程序吗!~!

追问

是啊,错在哪了,改一下呀,怎没给存储单元中存啊,mov xxx,xxx 。x怎么写啊

将1,2,3,4,5分别送到数据段偏移地址为1000H开始的连续5个存储单元中...
DATA SEGMENT ORG 1000H DA DB 10 DUP (?)DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DA,1 MOV DA+1,2 MOV DA+2,3 MOV DA+3,4 MOV DA+4,5 MOV AX,4C00H INT 21H CODE ENDS END START 有什么问题随时提出,望采纳~...

下列程序段汇编后,从1000H开始的有关存储单元的内容是什么?
从1000H单元开始,你用EQU定义TAB1 TAB2是不占内存单元的,之后用DB定义"MAIN",DB定义变量占一个字节,所以1000H~1003H存储的内容为M A I N(每个字符占一个字节),然后你用DW定义TAB1,TAB2,70H,DW定义变量占两个字节,所以1004H~1008H单元存储的内容为 34H 12H 00H 30H 70H(注意高地...

汇编语言。 在DS:1000H开始的内存区域设置如下键盘缓冲区: DS:1000H...
键盘输入到缓冲区,需要调用系统功能调用的0A号功能,而缓冲区的首地址为DS:DX,你只需要在调用0A好功能前,把1000H送给Dx就可以了.

...表指令查3,4的立方值并送到外部RAM的50H和1000H中保存
DB 0, 1, 8, 27, 64, 125, 216 END ;--- 2.MOV A, #3 MOV DPTR, #LFB MOVC A, @A + DPTR MOV R0, #50H MOVX @R0, A MOV A, #4 MOVC A, @A + DPTR MOV DPTR, #1000H MOVX @DPTR, A SJMP LFB:DB 0, 1, 8, 27, 64, 125, 216 END ;--- ...

用完整的汇编语言编写使数码管循环显示0,1,2,3,4,5,6,7,8,9的程序
参数:count 返回值:void \/ void delay1Xms( uint count){ uint i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);} \/ 主函数 \/ void main(void){ while(1){ uchar i;for(i=0;i<10;i++){ P0 = display[i];delay1Xms(1000); \/*延时1秒*\/ } } } ...

单片机中怎样用汇编语言在数码管上显示1、2、3、4要求用定时计数器中...
MAIN1: MOV R0, #0 MAIN2: JNB PJSBZY, $ ; 2 S CLR PJSBZY MOV A, R0 MOVC A,@A+DPTR MOV SBUF, A INC R0 CJNE R0, #0AH, MAIN2 AJMP MAIN1 TAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH DB 77...

汇编语言中数据段与偏移的问题
最小 当偏移量为FFFFH的时候,SA可取最小值20000H - FFFFH = 10001H 求得基础地址的值为10001H, 基础地址必须满足是10H的倍数,而10001H不为10H的倍数,所以偏移地址最大只能取到FFF0H才能使“段地址*16”的值为16(即10H)的倍数,即 20000H - FFF0H = 10010H 10010H\/10H = 1001H 此时“...

...2000H~204FH单元中的数,移入内部RAM30H~7FH单元中,汇编语言...
BY: MOV R0,#30H MOV DPTR,#2000H MOV R2,#50H BY1: MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR DJNZ R2,BY1

汇编语言基础问题
所以段地址 = 20000H \/ 10H 或者 10001H \/ 10H 段地址 = 2000H(最大) 或者 1001H(最小, 有余数1, 向上取整)这里有一个很容易错误的地方就是, 很多人会将最小段地址设置成1000H, 这是不对的 因为如果段地址为1000H的话,那么加上偏移地址的话, 那么它的物理地址的范围就 为10000H ~...

汇编语言题:以首地址为100:1000H 开始,存放26个字母:A、B、C、、、
assume cs:code code segment start:mov ax,0100H mov ds,ax;段地址设置成100H mov bx,1000H;偏移地址1000H mov si,0 mov al,'A'mov cx,26 next:mov byte ptr [bx],al inc al;增加al,例如未执行al前,al='A',那么执行后al='B'inc bx;下一个地址 loop next mov ax,4c00h int ...

相似回答