当前位置:   article > 正文

王爽 汇编语言第三版 第10章 call 和 ret 指令 以及 子程序设计

welcome to masm!汇编call

第10章 call 和 ret 指令

10.1 ret 和 reft 指令

call 和 ret 指令都是转移指令,他们都修改 IP,或同事修改 CS 和 IP 。他们经常被共同来实现子程序的设计。

10.2 call 指令 和 根据位移 转移的call指令

段间转移 的 call 指令

转移地址 在 寄存器 中 的 call 指令

转移地址在内存 中 的 call 指令

10.7 call 和 ret 的配合使用 来 实现子程序

子程序 框架

10.8 乘法指令

10.12 寄存器的冲突问题

实验 10 解析

王爽《汇编语言》(第三版)实验10解析:https://www.cnblogs.com/nojacky/p/9523904.html

1. 显示字符串

示例代码:

  1. assume cs:code
  2. datasg segment
  3. db 'welcome to masm!', 0
  4. datasg ends
  5. code segment
  6. start:
  7. mov dh, 8
  8. mov dl, 3
  9. mov cl, 2
  10. mov ax, datasg
  11. mov ds, ax
  12. mov si, 0
  13. call show_str
  14. mov ax, 4c00h
  15. int 21h
  16. show_str:
  17. push dx
  18. push cx
  19. push si ; 保护子程序寄存器中用到的寄存器
  20. ; 由于主程序的限定
  21. ; 这里由CPU自动为我们分配栈空间
  22. mov di, 0 ; 显示缓存区中的偏移量
  23. mov bl, dh
  24. dec bl ; bl-1才是真正的行,因为行号从0开始计数
  25. mov al, 160
  26. mul bl ; 每行160字节 用 行数*每行偏移量 得到目标行的偏移量
  27. mov bx, ax ; mul bl之后,乘积存储在ax中,这里要转存入bx中
  28. mov al, 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/712933
推荐阅读
相关标签
  

闽ICP备14008679号