导航:首页 > 数据处理 > 汇编程序数据段字符串怎么写

汇编程序数据段字符串怎么写

发布时间:2023-01-12 20:37:19

‘壹’ 编写一个完整的汇编语言程序,要求在屏幕上显示出字符串“Hello,Assembly language”。

datasegment

msgdb'Hello,Assemblylanguage','$'

dataends

codesegment

assumeds:data,cs:code

mainprocfar

movax,data

movds,ax

leadx,msg

movah,9

int21h

movax,4c00h

int21h

mainendp

codeends

endmain

(1)汇编程序数据段字符串怎么写扩展阅读

汇编程序在屏幕上显示一个字符串“Hello”

datasegment

stringdb'Hello',13,10,'$';字符串以’$’符号结尾,以单引号括起来

dataends

codesegment

assumecs:code,ds:data

start:;程序的入口地址

pushds;saveolddatasegment

subax,ax;ax寄存器清零,作为数据段0偏移地址

pushax;零偏移地址入栈

movax,data

movds,ax;把数据段地址装入数据段寄存器ds

leadx,string;把字符串首地址装入dx寄存器,或写成movdx,offsetstring

movah,9;DOS功能调用,在屏幕上显示字符串

int21h;DOS中断

movah,4ch;returntoDOS

int21h

codeends

endstart;汇编的结束,程序在此执行

‘贰’ 用汇编语言编写字符串查找的程序,怎样编急用!谢谢啦!

该数据段数据段开始
S1 DB 0DH,0AH的字符串:$',S1,S2,S3字符串
S2 DB 0DH,0AH的CH:$ S3 DB 0DH
BR />,0AH,'string2:搜索$“
输入DB 50输入:输入字符串的长度不超过50
IN_R DB 0.50 DUP(0),第一个字节的存储长度的实际输入
存储输入字符串后面的代码(ASCII)
输出DB 50 DUP('$')删除字符串
db'HHHHHHHHH'
数据结束块段代码段结束的开始
ASSUME CS:CODE,DS:数据
START:MOV AX,DATA的
MOV DS,AX DS点的数据段
PUSH DS
POP ES DS,ES推
MOV DX,OFFSET(偏移)的S1
MOV AH,09
INT 21H输出S1的字符串,系统会提示用户输入字符串 MOV DX抵消输入
MOV AH,0AH
INT 21H输入字符串的格式保存到输入缓冲区,看到上面
MOV DX,OFFSET S2
MOV AH,09
INT 21H输出S2字符串,提示用户输入要删除字符
IN_R MOV CL,CL店的实际输入字符串的长度
MOV CH,CH = 0 MOV BX,的偏移IN_R的+1 BX点实际的字符串
MOV DI,OFFSET输入输出DI指向输出字符串
MOV AH,01 INT 21H
输入的字符你要删除,存放在AL
LOOP1:
MOV AH,[BX]

CMP AH,AL比较字符串的字符是否要删除字符相同
JE NO_COPY相同,执行删除
MOV [DI],AH不同的复制到输出字符串的字符
INC DI指针DI加
NO_COPY的:
INC BX的字符发送到输出字符串
LOOP LOOP1循环,知道到底
MOV DX,OFFSET S3
MOV AH,09
INT 21H的输出串S3 BR /> MOV DX,抵消了输出
MOV AH,09

输出删除字符串INT 21H MOV AH,4CH
INT 21H返回到DOS
CODE结束数据段的结束
END START

‘叁’ 编写汇编语言程序,要有完整的格式(要有必要的数据段和代码段)

DATA SEGMENT
STR1 DB 'This is a program',0DH,0AH
STR2 DB 'Disk operation ','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AH,9
LEA DX,STR1
INT 21H
MOV AH,2
MOV DL,0DH
INT 21H
MOV AH,2
MOV DL,0AH
INT 21H
MOV AH,9
LEA DX,STR2
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START

‘肆’ 汇编语言怎么实现一个字符串的输入与输出

汇编语言实现一个字符串的输入与输出,可以调用DOS功能中断完成。
示例程序如下:
;汇编语言输入一串字符串,可以调用DOS功能中断INT 21H的06H功能。
;程序功能:输入一串字符,以回车符结束,输入字符串最大长度200字符;
; 输入结束在下一行输出此字符串。
data segment
str db 201 p (0dh)
data ends

code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
lea si,str
mov cx,200
inpstr: mov ah,06h
int 21h
jnz inpstr;无字符可读
mov [si],a1
inc si
xor al,0dh
jz endinp
loop inpstr

endinp: mov al,0dh
mov [si],a1

mov dl,0ah;回车换行
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21h

lea si,str;输出字符串
output: mov dl,[si]
cmp dl,0dh
jz endout;已到字符串尾
mov ah,02h
int 21h
inc si
jmp output

endout: mov ah,4ch
int 21h
ret
main endp
code ends
end start

‘伍’ 求汇编程序编写输入一个字符串,再输出

DATAS SEGMENT
STR DB 'please input a string:$'
BUF DB 20
DB ?
DB 20 DUP (?)
CRLF DB 0AH,0DH,"$"
;此处输入数据段代码
DATAS ENDS

STACKS SEGMENT STACK
DB 200 DUP(?) ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS
MOV DS,AX

LEA DX,STR
MOV AH,9
INT 21H

MOV AH,10
LEA DX,BUF
INT 21H

LEA DX,CRLF
MOV AH,9
INT 21H

mov bl,BUF+1 ;输出这里开始
mov bh,0 ;
lea si,BUF+2 ;首地址
mov byte ptr[si+bx],'$';结尾得加上 '$'
mov DX,si ;
MOV AH,9 ;
INT 21H ;结束

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

‘陆’ 汇编程序,string

这里还统计了数字字符个数和字母字符个数,并分别存储于shuzi和zimu这两个字节存储单元中。
希望能帮到你。

写一段子程序SKIPLINES,完成输出空行的功能.空行的行数在AX寄存器中.
[解]:
SKIPLINES PROC NEAR
PUSH CX
PUSH DX
MOV CX,AX
NEXT: MOV AH,2
MOV DL,0AH
INT 21H
MOV AH,2
MOV DL,0DH
INT 21H
LOOP NEXT
POP DX
POP CX
RET
SKIPLINES ENDP

‘柒’ 8086汇编语言 数据串操作指令

1、将数据段中定义的字符串“HELLO!”传送到附加段中。

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

extra segment
string2 db ChrCoun p(?)
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、使用LODSB指令将字符串中的‘HELLO!’中的第1个字符和第3个字符分别存入bl和bh中
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、在ES段存放10个ASCII码,搜索‘E’,若找到则记下搜索次数及存放地址,并将AH置1,否则AH清零。
extra segment
string db ‘ab12345Ecd’
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 ;搜索次数
dec di ;存放地址
not_E:
xor ah,ah
Exit:
mov ah,4ch
int 21h
code ends
end start

‘捌’ 怎么用汇编语言编写一个程序,统计字符串的长度并输出

DATA SEGMENT
MSG1 DB 'LENGTH:','$'
SHEX DB '0123456789ABCDEF$'
MAXLEN EQU 200H
DATA ENDS

CODE SEGMENT ;代码段定义
assume CS:CODE,DS:DATA
START:
mov ax,DATA
mov ds,ax

;初始化需要的寄存器
mov ax,0
mov bl,24H
mov di, offset MSG1

;循环比较字符串中的每个字符,并把统计值放在AX中
MYLOOP:
cmp byte ptr[di], bl
jz EXIT
inc di
inc ax
jmp MYLOOP
EXIT:
push ax
;显示提示内容
mov dx,offset MSG1
mov ah,9h
int 21h

pop ax
call printlen

mov ah,4ch
int 21h

;打印出长度,长度保存在AX里
printlen proc near
mov cx,4
PRINTLOOP:
rol ax,1
rol ax,1
rol ax,1
rol ax,1
push ax
mov dl,al
and dl,0FH
mov bx, offset SHEX
add bl,dl
mov dl, byte ptr [bx]
mov ah,2
int 21h
pop ax
loop PRINTLOOP
ret
printlen endp

CODE ENDS

END START

阅读全文

与汇编程序数据段字符串怎么写相关的资料

热点内容
酒店专属产品怎么做 浏览:614
基恩士怎么建立新程序 浏览:9
奥比岛怎么修改程序 浏览:49
无中介交易怎么避免卖家二次抵押 浏览:758
nfc技术怎么激活 浏览:913
为什么大飞机技术不好 浏览:435
交易员考什么课程 浏览:866
aac上架多少交易所 浏览:473
哪里有马岗鹅批发市场 浏览:722
撤案需要什么程序 浏览:499
会泽县小学信息技术多少分进面 浏览:631
实现数据压缩与什么层密切相关 浏览:505
怎么成为网点代理人 浏览:442
扫码查答案的程序有什么 浏览:792
个人信息泄露被判刑的有哪些 浏览:179
义乌狗市场狗多少一只 浏览:650
如何解除移动数据限流的方法 浏览:174
郴州市活禽交易市场什么时候休市 浏览:456
四川空间信息产业发展怎么样 浏览:284
宏基笔记本怎么样关闭程序 浏览:524