七月你好 发表于 2014-6-30 14:11:16

实验五第6题

assume cs:code

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

b segment
dw 0,0,0,0,0,0,0,0
b ends

code segment

abc: mov ax,b            ;这里是把b段当成一个栈段,因为不可以直接用,所以请了ax这个中介,来转换
       mov ss,ax
       mov sp,16          ;因为现在是空栈,而且是定义的dw字型数据,所以栈底指向16
       
       mov ax,a         ;把a段看成是数据段(data)
       mov ds,ax
       
       mov bx,0
       mov cx,8      ;因为只需要将前8个数据逆序,所以循环的次数是8
       
xun: push          
   add bx,2            ;因为是字型数据,所以每次要加2
   loop xun

   mov ax,4c00h
   int 21h
code ends

end abc       因为是实验题,没过或者没理解的不能往下学习,所以为了对自己负责, 将自己理解的写出来,希望大家把我的错误或者不足的地方告诉我,谢谢大家了

七月你好 发表于 2014-6-30 14:21:15

这是用debug运行后的结果,偷了个懒没有单步跟踪,直接跳过了循环,到程序返回前的地方

七月你好 发表于 2014-6-30 14:21:56

希望大家帮忙看看,错误的地方帮我提出来。谢谢了

fast 发表于 2015-6-21 05:33:01

感谢分享

AroundTheFire 发表于 2017-8-10 09:35:52

我的敲的和楼主的差不多{:10_279:}
页: [1]
查看完整版本: 实验五第6题