|
楼主 |
发表于 2018-9-19 11:05:13
|
显示全部楼层
本帖最后由 奥普瓯江 于 2018-9-19 11:16 编辑
- 刚加了一个站段现在可以用push了也可以正常出站了但是改成3还是不行这是为什么呢
- assume cs:code, ds:data
- data segment
- db 'Welcome to masm!', 0
- data ends
- stack segment
- dw 8 dup (0) ;这里是增加的站段
- stack ends
- code segment
- start: mov dh, 8
- mov dl, 3
- mov cl, 2
- mov ax, data
- mov ds, ax
- mov si, 0
- mov di, 0
-
- mov ax, stack
- mov ss, ax
- mov sp, 16
- call show_str
-
- mov ax, 4c00h
- int 21
- show_str:mov ax, 0b800h
- mov es, ax
-
- mov al, 180
- mov ah, 0
- mul dh
- mov bx, ax
- mov al, byte ptr ds:[di]
- ;mov ah, 2 ;还有这里我想加个站把cl中的值传入站中然后在jcxz后面出站为什么也不可以
- mov ah, cl
- mov ch, 0
- push cl
- mov word ptr, es:[bx + si + 4], ax ;为什么这里必须用4,而不能像下面一样用3呢
- ;mov word ptr, es:[bx + si + 3], ax
- mov cl, byte ptr ds:[di]
- mov ch, 0
- add si 2
- inc di
-
- jcxz chang
- pop cl
- jmp short show_str
- chang: ret
- code ends
- end start
复制代码
为什么这个跳转的时候会跳转到14行mov dl, 3这个语句上去呢?
但是mov word ptr, es:[bx + si + 3], ax 还是用不了 |
|