首页 > 编程语言 >8086汇编push pop 易错点总结

8086汇编push pop 易错点总结

时间:2024-01-27 21:00:31浏览次数:36  
标签:8086 code 易错 pop mov cs push bx

首先附代码

assume cs:code
code segment
    dw 0123h,0456h
    dw 0,0,0
    start:
    mov ax,cs
    mov ss,ax  ;设置栈段
    mov sp,0Ah  ;设置栈顶  A是栈偏移
    
    mov bx,0   ;偏移
    mov cx,2   ;设置
    s:push cs:[bx]
    add bx,2
    loop s
    
    mov bx,0
    mov cx,2   
    s0:pop cs:[bx]
    add bx,2
    loop s0
    
    mov ax,4c00h
    int 21h
    
code ends
end start

观察汇编指令

image
这里出现命令 PUSH w.[BX]
我们的源命令 s:push cs:[bx]

疑问:w是什么?

解答:在8086环境下,汇编指令中的"w"通常表示"word",表示一个字(16位)。

疑问:push可以对字节操作吗?

image
实践:不可以对字节进行操作

搜索得出结论

1、push pop 只对字操作(不允许字节进栈)操作数长度为32位时进出栈为双字。
2、汇编语言中PUSH导致SP减2而不是加2。原因:栈在内存中实际存储结构是栈底在高地址,栈顶在低地址
3、8086push不可以使用立即数寻址方式(其他版本允许)
4、pop不可以使用立即数寻址方式,使用段寄存器时不可使用CS段寄存器。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_36561697/article/details/80699450

标签:8086,code,易错,pop,mov,cs,push,bx
From: https://www.cnblogs.com/Mask2024/p/17991935

相关文章

  • PopAi:领先的多语言 AI 对话体验工具
    引言PopAi是一款多功能的AI工具,提供全天候支持,支持超过200种语言。它适用于个人和专业需求,可适应教育问题、技术支持和创意思维启发。PopAi具有全球范围和本地化特色,在语言技能和文化意识方面表现出色,满足各种多元化互动。此外,它引入了创新元素,如“ChatwithDocument”用于......
  • 对于push,pop,call,leave,ret的理解
    push指令比如pushebp就是把ebp的值放在esp所指的地方,然后esp-4(32位,以下均为32位)。pop指令popebp就是把esp所指的地方的值给ebp,然后esp+4call指令call函数的时候,把eip的下一行存到esp所指的位置,然后esp-4leave指令leave指令可以等价于movesp,ebp;popebpret指令等价于p......
  • 万字长文,一篇吃透WebSocket:概念、原理、易错常识、动手实践
     万字长文,一篇吃透WebSocket:概念、原理、易错常识、动手实践转载自:https://cloud.tencent.com/developer/article/1887095原作者原文:http://www.52im.net/thread-3713-1-1.html 文章被收录于专栏:即时通讯技术即时通讯技术本文由作者“阿宝哥”......
  • 详解Process object has no attribute '_popen'
    详解Processobjecthasnoattribute'_popen'最近在使用Python的multiprocessing模块进行多进程编程时,遇到了一个奇怪的错误:Processobjecthasnoattribute'_popen'。这个错误消息看起来很奇怪,让人摸不着头脑。错误背景在使用multiprocessing模块创建子进程时,通常会创建一个Pr......
  • Zoho 的POP、IMAP 和SMTP 设置教程,简单好用
    随着云计算技术的不断发展,越来越多的企业和个人选择使用云端服务来管理和存储电子邮件。Zoho作为一家领先的云服务提供商,其邮件服务备受青睐。本文将介绍如何使用Zoho的POP、IMAP和SMTP设置,并展示其简单而高效的操作方式。1.ZohoSMTP简介ZohoSMTP,即简单邮件传输协议,是一种用于在......
  • mail邮件的POP、IMAP和SMTP设置教程,简单好用
    在现代社会中,电子邮件已经成为人们日常沟通的重要方式之一。为了能够顺利收发邮件,正确设置邮件客户端的POP、IMAP和SMTP是至关重要的步骤。本文将为大家详细介绍如何进行这些设置,使邮件体验更为简单和便捷。1.POP、IMAP、SMTP是什么?在深入了解如何设置之前,我们先来了解一下这三个......
  • 189邮箱的POP、IMAP和SMTP设置教程,简单好用
    在现代社会,电子邮件已经成为人们生活中不可或缺的一部分。189邮箱作为中国电信旗下的邮箱服务,为用户提供了丰富的功能和便捷的邮件服务。为了更好地使用189邮箱,了解如何正确配置POP、IMAP和SMTP设置是至关重要的。本文将为大家详细介绍189邮箱的POP、IMAP和SMTP设置教程,以及如何简......
  • el-table-column设置fixed后,el-popover出现两个的解决办法。
    折磨许久终于解决,百度到的答案,搬运纪念一下<el-popoverplacement="bottom"title="编辑标签"width="400"trigger="manual"v-model="row.tagVisible":ref="`popover-${row.id}`"><divclass="clo......
  • APUE-popen
    FILE*popen(constchar*command,constchar*type);popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh-c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个......
  • vue3使用 vant ui 3 如何获取组件 popup dom的高度?
    我目前使用的是vant-ui 3.1.2popup弹出层组件,我想要获取弹出层的高度来计算一些东西,但是使用常规定义refdom的方式总是无法获取,最终找到方案如下:vant-ui官方文档:https://vant-contrib.gitee.io/vant/v3/#/zh-CN/popup<template><van-popupv-model:show="show......