汇编语言 将数据段中的一个字符串传送到附加段中,然后将附加段中的字符串输出到屏幕上。求填空 8086汇编语言 数据串操作指令

\u5c06\u6570\u636e\u6bb5\u4e2d\u957f\u5ea6\u4e3a20\u7684\u5b57\u4e32string\u4f20\u9001\u5230\u9644\u52a0\u6bb5\u4e2d\u9996\u5730\u5740\u4e3adestin\u7684\u7f13\u51b2\u533a\u4e2d

\u5c06\u6570\u636e\u6bb5\u4e2d\u957f\u5ea6\u4e3a20\u7684\u5b57\u4e32string\u4f20\u9001\u5230\u9644\u52a0\u6bb5\u4e2d\u9996\u5730\u5740\u4e3adestin\u7684\u7f13\u51b2\u533a\u4e2d
\u6211\u53ea\u80fd\u7ed9\u4f60\u5199\u4e3b\u7a0b\u5e8f\uff0c\u5176\u5b83\u7684\u81ea\u5df1\u52a0\u5427\u3002
\u7b2c\u4e00\u9898\uff1a\u5148\u5b9a\u4e49\u4e00\u4e2a\u5185\u5b58\u7f13\u51b2\u533a\uff0c\u7136\u540e\u7528dos\u529f\u80fd\u8c03\u7528
\u4ece\u952e\u76d8\u8f93\u5165\u5b57\u7b26\u4e32\u5230\u7f13\u51b2\u533a\u3002\u7136\u540e\u5c06\u7f13\u51b2\u533a\u6570\u636e\u5206\u7c7b\uff0c
DL\u5b58\u5c0f\u5199\u5b57\u6bcd\u4e2a\u6570\uff0cDH\u5b58\u6570\u5b57\u4e2a\u6570\uff0cBH\u5b58\u5176\u5b83\u5b57\u7b26\u4e2a\u6570\u3002
BUFF DB 100 \uff1b\u5b9a\u4e49100\u5b57\u8282\u7f13\u51b2\u533a
DB ? \uff1b\u7cfb\u7edf\u586b\u5165\u5b9e\u9645\u8f93\u5165\u5b57\u8282\u6570
DB 100 DUP(?)
MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET BUFF
MOV AH, 0AH \uff1b10\u53f7\u529f\u80fd\u8c03\u7528\uff0c\u4ece\u952e\u76d8
\uff1b\u8f93\u5165\u5b57\u7b26\uff0c\u56de\u8f66\u952e\u7ed3\u675f\u3002
INT 21H
MOV BX, DX
MOV CL, [BX+1]
LEA SI, OFFSET BUFF
ADD SI, 2

1\u3001\u5c06\u6570\u636e\u6bb5\u4e2d\u5b9a\u4e49\u7684\u5b57\u7b26\u4e32\u201cHELLO!\u201d\u4f20\u9001\u5230\u9644\u52a0\u6bb5\u4e2d\u3002

data segment
string1 db 'HELLO!'
ChrCoun equ $-string
data ends

extra segment
string2 db ChrCoun dup(?)
extra ends

code segment
assume cs:code,ds:data,es:extra
start:mov ax,data
mov ds,ax
mov ax,extra
mov es,ax
lea si,string1
lea di,string2
mov cx,ChrCoun
cld
rep movsb
mov ah,4ch
int 21h
code ends
end start

2\u3001\u4f7f\u7528LODSB\u6307\u4ee4\u5c06\u5b57\u7b26\u4e32\u4e2d\u7684\u2018HELLO!\u2019\u4e2d\u7684\u7b2c1\u4e2a\u5b57\u7b26\u548c\u7b2c3\u4e2a\u5b57\u7b26\u5206\u522b\u5b58\u5165bl\u548cbh\u4e2d
data segment
string db 'HELLO!'
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
lea si,string
cld
lodsb
mov bl,al
lodsb
lodsb
mov bh,al
mov ah,4ch
int 21h
code ends
end start

3\u3001\u5728ES\u6bb5\u5b58\u653e10\u4e2aASCII\u7801\uff0c\u641c\u7d22\u2018E\u2019\uff0c\u82e5\u627e\u5230\u5219\u8bb0\u4e0b\u641c\u7d22\u6b21\u6570\u53ca\u5b58\u653e\u5730\u5740\uff0c\u5e76\u5c06AH\u7f6e1\uff0c\u5426\u5219AH\u6e05\u96f6\u3002
extra segment
string db \u2018ab12345Ecd\u2019
extra ends

code segment
assume cs:code,ds:data,es:extra
start:mov ax,extra
mov es,ax
lea di,string
mov cx,10
cld
repnz scasb
jcxz not_E
mov cx,di
sub cx,offset string ;\u641c\u7d22\u6b21\u6570
dec di ;\u5b58\u653e\u5730\u5740
not_E:
xor ah,ah
Exit:
mov ah,4ch
int 21h
code ends
end start

仅用两句传送指令,即可。
……

MOV CX, LEN
NEXT:
MOV AL, DS[SI] ; ① ;开始传输数据
MOV ES[DI], AL ; ②
INC SI
……
程序中,已经给出了 INC SI、INC DI,
所以就不能用串传送指令。
否则,就重复加一了。

s1 segment
STRING1 db 'ABCDEF'
STRING2 db 6 dup(?)
h db 24h
s1 ends
s2 segment stack
dw 100(?)
top label word
s2 ends
s3 segment
assume ds:s1,ss:s2,cs:s3
p proc far
lea sp,top
mov ax,s1
mov ds,ax
mov es,ax
lea si,STRING1
lea di,STRING2
mov cx,6
cld
rep movsb
lea dx,STRING2
mov ah,9
int 21h
mov ah,4ch
int 21h
s3 ends
end p

扩展阅读:扫一扫题目出答案 ... 汇编语言是低级语言吗 ... 汇编语言数据段怎么写 ... 汇编语言代码对照表 ... 汇编语言怎么输入数据 ... 汇编语言 机器 面向 ... 汇编语言王爽第四版 答案 ... 汇编语言指令大全及意思 ... 语言 言语 话语三者的区别 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网