流泪的鳄鱼 发表于 2020-8-28 12:54:31

如何实现段中字节数据按顺序一个字节一个字节的入栈

如何实现段中字节数据按顺序一个字节一个字节的入栈

xieglt 发表于 2020-8-30 08:50:40

assume cs:code

a segment
        db 1,2,3,4,5,6,7,8,0ah,0bh,0ch,0dh,0eh,0fh,0ffh,0
a ends

e segment
        db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
e ends

code segment
       
start:
         mov ax , a
         mov ds , ax
         
         mov ax,e
         mov ss,ax
         mov sp,16
         
         xor si,si
         mov cx,8
         
          ;16位系统的栈是16位的,一次入2个字节,
          ;想一个字节一个字节的入是不可能的。
          ;变通的方法是先将2个字节的低位和高位互换,然后入栈。
         s:
         ;word ptr ds: => ax
         lodsw
         ;交换ah与al,即将相邻两个字节的低位和高位互换。
         xchg ah,al
         ;入栈
         push ax         
         loop s
         
         mov ax,4c00H
         int 21H
code ends
end start
页: [1]
查看完整版本: 如何实现段中字节数据按顺序一个字节一个字节的入栈