DSFEF 发表于 2022-3-15 23:13:49

实验9关于push bx的疑问

小甲鱼实验9求助,视频里说bx保存进栈,怕被影响到,xor却在循环外部,好像完全找不到影响bx值的地方,inc bx的地方,也是颜色属性的地方自己使用,看不出除了属性还有其它地方影响bx的值,请大家帮忙看看
assume cs:code,ds:data,ss:stack

data segment

   db 'welcome to masm!'
   db 02H,24H,71H
         
data ends

stack segment

   dd 4 dup(0)
         
stack ends

code segment

main:mov ax,data
   mov ds,ax
         mov ax,stack
         mov ss,ax
         mov sp,10H
         
         xor bx,bx
         mov ax,0B872H
         
         mov cx,3H
         
s3:push cx;保存循环次数
   push ax;保存彩屏写入的地址
   push bx;保存BX的数值
         
         mov es,ax;
         
         mov si,0
         mov di,0
         
         mov cx,10H
         
s1:mov al,ds:;把文字复制到彩屏内存
   mov es:,al
         inc si
         add di,2H
         loop s1
         
         mov di,1
         pop bx
         mov al,ds:;设置文字颜色
         inc bx
         
         mov cx,10H
s2:mov es:,al
   add di,2H
   loop s2

   pop ax
   add ax,0AH

   pop cx
   loop s3
         
         mov ax,4C00H
         int 21H
         
      code ends
    end main   

wp231957 发表于 2022-3-16 07:27:06

int 21H对于含有这样语句的汇编代码
就没啥学习的意义了,因为你永远没有机会使用它

DSFEF 发表于 2022-3-16 11:22:48

wp231957 发表于 2022-3-16 07:27
int 21H对于含有这样语句的汇编代码
就没啥学习的意义了,因为你永远没有机会使用它

我问的是push bx那个bx,而不是int 21h,朋友看题

zzxhh628 发表于 2022-3-17 08:48:53

这里好像确实没有地方改了BX,可能是因为预防以后BX被修改才这么做的吧……

jie杰 发表于 2022-6-18 20:14:12

对的,这里bx不入栈也没问题

jackz007 发表于 2022-6-20 12:14:49

      楼主只管提问,却总不结帖,日子久了不会再有人愿意热心帮你。
页: [1]
查看完整版本: 实验9关于push bx的疑问