清零程序(把RAM区内4000H-40FFH单元内容) 汇编语言
发布网友
发布时间:2022-05-12 06:33
我来回答
共5个回答
热心网友
时间:2024-03-01 13:33
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
为什么违反协议? 这是最简的代码啊?!
热心网友
时间:2024-03-01 13:33
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
热心网友
时间:2024-03-01 13:34
以下代码可以实习这个功能:
ORG 0000H
MOV DPTR,#4000H
MOV R7,#0FFH
MOV A,#00H
LOOP:MOVX @DPTR,A
INC DPTR
DJNZ R7,LOOP
SJMP $
END
热心网友
时间:2024-03-01 13:34
;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
热心网友
时间:2024-03-01 13:35
ORG 0000H
MOV DPTR, #4000H
CLR A
MOV R0, #0
S:
MOVX @DPTR, A
INC DPTR
DJNZ R0, S
SJMP $
END