关于汇编程序hello world代码的详细说明,需要解释一下每一段代码的意思,谢谢。
DATASEGMENTBUFDB'Hello,world!$'DATAENDSSTACKSEGMENTSTACK'STACK'DW36DUP(?)STACKENDSCOD...
DATA SEGMENT
BUF DB 'Hello, world !$'
DATA ENDS
STACK SEGMENT STACK 'STACK'
DW 36 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START 展开
BUF DB 'Hello, world !$'
DATA ENDS
STACK SEGMENT STACK 'STACK'
DW 36 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START 展开
2个回答
2013-12-15
展开全部
SEGMENT表示把代码分成不同的段,不同的段保存在不同的地址中。DATA SEGMENT表示这是数据段用来存储数据用的,STACK 是堆栈段,CODE是代码段,MOV AX,DATA 表示将DATA的段地址传递给AX,DS是段寄存器,MOV DX,OFFSET BUF是将BUF所代表的地址传递到DX中,AX,DX是通用寄存器。INT 21H,INT 是软中断,21H是函数的入口地址,至于前面的MOV AH,9是函数的参数。你查一下INT 21H的功能就可以知道参数是9的意思就是显示DS:DX中所指向的字符串,4CH是带返回码结束。
2013-12-15
展开全部
DATA SEGMENT
BUF DB 'Hello, world !$'
DATA ENDS
将“Hello,world!”放到data segment里面 ‘$’为字符串结尾标志,标志为buf
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
将ds=data的段地址 dx=buf的偏移地址
MOV AH,9 INT 21H
ah=9中断 输出ds:dx字符串 这个查8086中断表可以知道的
MOV AH,4CH
INT 21H
ah=4c中断 程序结束
BUF DB 'Hello, world !$'
DATA ENDS
将“Hello,world!”放到data segment里面 ‘$’为字符串结尾标志,标志为buf
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUF
将ds=data的段地址 dx=buf的偏移地址
MOV AH,9 INT 21H
ah=9中断 输出ds:dx字符串 这个查8086中断表可以知道的
MOV AH,4CH
INT 21H
ah=4c中断 程序结束
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询