王爽汇编第九章学习笔记

  1. 在这里0-1=ffff

  2. 有关于根据位移进行转移的意义:跳转指令与浮动装配(汇编相关),汇编语言交流,技术交流区,鱼C论坛 - Powered by Discuz!

  3. 实验八:重点关注jmp short s1是表达ip的值本位-8个字节,因为他不是长转移,而是短转移,是直接根据位移算的,它的机器码里没有要跳转到的目标位置的信息

  4. 有关于nasm用法的意外收获:http://www.cppblog.com/myjfm/archive/2011/11/05/159647.asp

  5. 有关于实验9,先给代码

     DATAS SEGMENT
         db 'welcome to masm!'  
         db 2h,23h,71h
     DATAS ENDS
     stack segment
         dw 10 dup(0)
     stack ends
     ​
     CODES SEGMENT
         ASSUME CS:CODES,DS:DATAS,SS:stack
     START:
         mov ax,datas
         mov ds,ax
         mov ax,0b800h
         mov es,ax
         mov si,40h
         mov di,0
         mov bp,0780h
         mov cx,3
         s1:
         push cx
         mov cx,10h
         s:mov al,byte ptr ds:[bx]
         mov ah,byte ptr ds:[di+10h]
         mov es:[si+bp],ax
         add si,2
         inc bx
         loop s
         mov bx,0
         inc di
         add bp,0a0h
         mov si,40h
         pop cx
         loop s1
         MOV AH,4CH
         INT 21H
     CODES ENDS
         END START

    写这道实验我还是踩过挺多坑的,现在就列一下:

    1. 栈不用你进行初始化,在上面设栈了,程序会自动帮你接过去,不然你的程序可能报错

    2. 直接数类似于abh这样的,只有这么写0abh才是合法,其他会报错

    3. 你不能直接用si进行字节的复制,我试了下,直接报错

    4. 一般这种处理一个字节,可以分解ax为al,ah,然后复制到目标的内存单元,注意高位配高位,低位配低位

    5. 字符串可以通过db ‘jaskdjak’这样在data数据段中直接设置

    6. 因为我在data段里面设置两个,又因为这两个偏移方式有点不太一样,所以不能用相同的寄存器进行同加操作,这里是我原本第24行di是bi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cjz-lxg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值