清零程序(把RAM区内4000H-40FFH单元内容) 汇编语言

如题所述

XOR AX,AX     ; 置AL=0
MOV SI,4000H;置起始指针
MOV DI,4000H;置起始指针,不记得STOSB应该是SI还是DI,请自行查证。查了下是DI。而且DI有DF控制方向。
CLD   ;表示DI增
MOV CX,100H;置计数器
REP STOSB     ;重复用AL置目标区域的字节值,自动增加目标偏移。

完整代码:
data segment
ORG 4000H
RAM_START DB ?
ORG 40FFH
RAM_END   DB ?
data ends
code segment
 assume cs:code ds:data
ORG 100H
XOR AX,AX     ; 置AL=0
MOV DI,4000H;置起始指针查了下是DI。而且DI有DF控制方向。
CLD   ;表示DI增
MOV CX,OFFSET RAM_END - OFFSET RAM_START;置计数器
REP STOSB     ;重复用AL置目标区域的字节值,自动增加目标偏移。
INT 3

为什么违反协议? 这是最简的代码啊?!

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-05-09
        CODE  SEGMENT
              ASSUME    CS:CODE
      START:  MOV       AX,0
              MOV       ES,AX
              MOV       DI,4000H
              MOV       CX,100H
              CLD
              MOV       AL,0
         @1:
              STOSB
              LOOP      @1

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

第2个回答  2016-01-13
以下代码可以实习这个功能:

ORG 0000H
MOV DPTR,#4000H
MOV R7,#0FFH
MOV A,#00H
LOOP:MOVX @DPTR,A
INC DPTR
DJNZ R7,LOOP
SJMP $
END
第3个回答  推荐于2018-05-09
;8086
code segment
assume cs:code
start:
mov ax,400h
mov ds,ax
mov cx,0ffh
mov di,0h
xor ax,ax
s:
mov [di],ax
inc di
loop s
code ends
end start

;c51
org 0000h
mov dptr,#4000h
clr a
mov r0,#0ffh
s:
movx @dptr,a
djnz r0,s
sjmp $
end本回答被网友采纳
第4个回答  2010-09-30
ORG 0000H
MOV DPTR, #4000H
CLR A
MOV R0, #0
S:
MOVX @DPTR, A
INC DPTR
DJNZ R0, S

SJMP $

END

清零程序(把RAM区内4000H-40FFH单元内容) 汇编语言
ORG 40FFHRAM_END DB ?data endscode segment assume cs:code ds:dataORG 100HXOR AX,AX ; 置AL=0MOV DI,4000H;置起始指针查了下是DI。而且DI有DF控制方向。CLD ;表示DI增MOV CX,OFFSET RAM_END - OFFSET RAM_START;置计数器REP STOSB ;重复用AL置目标区域的字节值,自动增加...

微机题,编制完成EAX*5\/8的程序段。要求:1.用乘法指令实现。2.用移位和...
3.2 试述指令MOV AX,2000H和MOV AX,DSz[2000H]的区别。解:前一条指令是立即寻址,即把立即数2000H传送至寄存器AX。后一条指令是直接寻址,是把数据(DS)段中的地址为200OH单元的内容传送至寄存器AX。3.3 写出以下指令中内存操作数的所在地址。(1)MOV AL, [BX 10](2)MOV [BP 10], AX(3)INC BYTE PTR...

MCS-51单片机,数据块传送程序设计,汇编语言如何设计?
传送到以 R4、R5 为首地址的目的 RAM 区。设定 R2、R3 所存储的源 RAM 首地址为 2000H(即 R2、R3 分别为 20H、00H),R4、R5 所存储的目的 RAM 首地址为 4000H(即 R4、R5 分别为 40H、00H),R6、R7 所存储 的字节数为 1FFFH(即 R6、R7 分别为 1FH、0FFH)。--- MOV R2...

急求 单片机原理与技术 周明德 课后习题答案
4.4 利用变址寄存器,编写一个程序,把自1000H单元开始的100个数传送到自1070H 开始的存储区中去。 解: LEA SI, 100OH LEA DI, 1070H MOV CX, 100 CLD REP MOVSB HLT 4.5 要求同题4.4,源地址为2050H,目的地址为2000H,数据块长度为50. 解: LEA SI, 205OH LEA DI, 200OH MOV CX, 50 CLD REP MOV...

汇编语言
10.编程实现外部RAM2040H单元的内容与3040H单元内容互换。11.分析以下程序的执行过程,并绘出执行过程示意图。MOV A,#30H MOV DPTR,#4000HMOV SP,#55H MOV A,#22HMOV DPTR,#2000H MOVX @DPTR,APUSH DPL POP APUSH DPH POP DPHPUSH A POP DPL12.指出以下程序每一条的执行结果。MOV A,#25H ADD A,...

单片机设计家电状态检测电路
四、程序的执行过程: 单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000’,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’这个单元,并且在‘0000’单元中存放的一定是一条指令。 五、堆栈: 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RA...

DEBUG命令谁知道多少?
1,直接输入,更改,跟踪,运行汇编语言源程序;2,观察操作系统的内容;3,查看ROM BIOS的内容;4,观察更改RAM内部的设置值;5,以扇区或文件的方式读写软盘数据 DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据: 十六进制数据和ASCⅡ码字符。它的显示格式是各个...

当年的Fc《魂斗罗》《玛丽》是用什么工具做的。如何反编译。
组成,对应于CPU管理的$40DO——$4013二十个单元,每个声部使用四个单元,它们的作用依次为音色音量、音形包络、音调细调、音调粗调。第一、二、三声部可进行和声旋律演奏,也可以选取任一声部发出效果音,如执行F BASIC程序 POKE &H4015,1:POKE &H4000. 255,255,255,255就可发出长达三分钟的频率由低到高的...

关于《微机原理》的一些问题
12、若当前SS=3500H,SP=0800H,堆栈段在存储器中的物理地址为35800H,若此时入栈10个字节,SP内容是07F6H,若再出栈6个字节,SP为07FCH 3、(1)MOV AX,[100H]源操作数字段的寻址方式是直接寻址,物理地址值是 10100H (2)MOV AX,VAL源操作数字段的寻址方式是直接寻址,物理地址值是 10030H...

芯片(单片机)是怎么认识程序转化来的二进制,0是低电平,1是高电平使...
手机不再是单纯的手机,它是有情感的智能机器人,而它的芯片被别人控制,我们不仅仅要学会和人相处,更要学会和手机处理好关系,它一不高兴,就有办法给我们设置阻碍,天下之大,能人倍出,望老天爷快速研究出新的东西来智胜它吧,不想被手机控制,望转发!保护自己自己的隐私是每个公民的权利!

相似回答