懂汇编语言的请进

assume cs:code,ds:data,ss:stack

data segment
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
data ends

stack segment
dw 0,0,0,0,0,0,0,0
stack ends

code segment
start:mov ax,stack
mov ss,ax
mov sp,16
mov ax,data
mov ds,ax
mov bx,0
mov cx,8
s:push [bx]
add bx,2
loop s
mov bx,0
mov cx,8
s0:pop [bx]
add bx,2
loop s0
mov ax,4c00h
inc 21h
code ends
end start

我的问题是那个dw 0,0,0,0,0,0,0,0是什么意思,
上面哪个dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h不是已经定义了cs:[0]--cs:[16],可是下面的那个dw 0,0,0,0,0,0,0,0我就不知
什么意思?

第1个回答  2007-02-01
作用和上面说的一样,但这也太笨了一点了吧.
应该用dw 8 dup(0)这样更好,还有那个堆栈段定义的格式不对,没定义成功,在map文件的第一行有提示:no stack segment,不相信就试验一下,stack segment stack 'stg',这样才正确啊bb111.
dw 0,0,0,0,0,0,0,0给堆栈定义8个字的空间
第2个回答  2007-01-30
两个作用:
1、为stack段分配8个字的空间
2、将上述空间初始化为0本回答被提问者采纳

懂汇编语言者,请进
INT 21H,是调用DOS中断,DOS中断中有很多功能,可以看做有很多个子程序。然后我们要在调用INT 21H之前,通过AH的值来定位我们需要的某一子程序的位置。这些子程序中,还有一些特别的,要利用其他的寄存器,来进行参数的传入,或者将结果保存到特定的寄存器作为返回值。

汇编语言的高手请进,问几个简单题目
1 XOR AL,AL INC AL NEG AL INC AL MOV BL,7FH ADC AL,BL 答:上述程序运行后,AL=80H,CF=0 2 下面程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置非0。试把空白处填上适当的指令(一个空白只填一条指令)。答: xor ah,al AND AH,08H jz ZERO...

一个汇编语言的问题,大神请进
IF (Interrupt enable)——位9,中断许可标志。控制处理器对可屏蔽硬件中断请求的响应。置1 则开启可屏蔽硬件中断响应,置0 则关闭可屏蔽硬件中断响应。执行int8后,IF标志会由允许中断(EI)变为禁止中断(DI),即由“1”变为“0”。因此,X2XX就变成了X0XX。CPL、IOPL 和控制寄存器CR4 中的VM...

懂汇编语言的请进
有无符号要根据程序来判断。一般有符号数会在定义的数据类型前加S。单独讨论一个数,就像你举的例子里,你说它有符号也对,无符号也对,只是得到的值不同而已,至于具体是哪种情况,要看你在程序中怎么使用它。

关于汇编语言的带符号数的有关问题,高手请进,急!
1、9098H是一个带符号数的补码,转换成二进制数为10010000 10011000B,它的最高位为1,即符号位为1,所以扩展后为11111111 11111111 10010000 10011000B,对应的十六进制数为FFFF9098H,同时,为了将以A到F开头的十六进制数和变量区分开,因为变量是以字母开头的,所以要将以A到F开头的十六进制数前加一个...

懂汇编语言的请进
作用和上面说的一样,但这也太笨了一点了吧.应该用dw 8 dup(0)这样更好,还有那个堆栈段定义的格式不对,没定义成功,在map文件的第一行有提示:no stack segment,不相信就试验一下,stack segment stack 'stg',这样才正确啊bb111.dw 0,0,0,0,0,0,0,0给堆栈定义8个字的空间 ...

汇编高手请进。关于以下题目的代码(汇编语言的)。
;宏定义1 ;功能:把字符串中的大写改为小写.;入口:字符串起始地址为STR_ADDR ; 字符串是以0结尾.D2X MACRO STR_ADDR LEA SI, STR_ADDR LP1:MOV AL, [SI]CMP AL, 0 JE FINI CMP AL, 'A'JB NEXT CMP AL, 'Z'JA NEXT ADD AL, 20H MOV [SI], AL NEXT:...

懂汇编语言的请进
在堆栈中于定义一个缓冲区初始为0,0,0,0,0,0,0,0,没后面的代码不知道下面他要做什么,这缓冲区应该是预留给后面使用的

有懂汇编语言的高手吗,有几个问题想请教
004106B3 |. 8945 E8 MOV DWORD PTR SS:[EBP-18],EAX 将EAX双字(4个字节)寄存器的值送入SS:[EBP-18]指向的堆栈区保存,004106B3是对当前指令所对应的段内偏移地址,8945 E8为该指令的机器代码;004106B6 |. 837D E8 FF CMP DWORD PTR SS:[EBP-18],-1 将刚刚存入SS:[EB...

单片机汇编语言JNC LOOP1(详细问题在里面,高手请进)
LOOP1是下个程序的标号,这个标号由你来给某个你想跳转到的子程序,当程序进行编译后,系统会自动将LOOP1转换成一个8位的二进制地址,至于这个二进制数字是多少就由编译系统来决定,而你决定的是程序转向哪里。你可以好好在想一想,相信你可以明白的 ...

相似回答
大家正在搜