sp=2000H,AX=3000H,BX=5000H,试问……

abigpot 2001-04-14 04:20:00
执行指令PUSH AX后,SP=?
再执行PUSH BX及POP AX后,SP=? AX=? BX=?
为什么!!!
...全文
681 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fd 2001-04-15
  • 打赏
  • 举报
回复
因为还有 eax,ebx,ecx....
huanghai 2001-04-15
  • 打赏
  • 举报
回复
to yyz_xyz,请教,我没有试过,32位保护模式下每一个地址4个字节,那PUSH AX,
为何加2呢???我真的不明白!
yyz_xyz 2001-04-14
  • 打赏
  • 举报
回复
1 push ax ;sp=1ffeH
2 push bx ;sp=1ffcH
3 pop ax ;sp=1ffeH ,bx=5000H ,ax=5000H
每执行一条push 语句就减两个字节,执行一条pop语句就加两个字节!
push ax 把ax压栈
push bx 把bx压栈
pop ax 从栈中弹出给AX

后面两就名就象mov ax,bx ;所完成的功能是一样的!

yoci 2001-04-14
  • 打赏
  • 举报
回复
o!yeah
昏了头了,16进制都忘了 :)
yelid 2001-04-14
  • 打赏
  • 举报
回复
sp=1ffch
sp=1ffch,ax=5000h,bx=5000h
对不对?
yoci 2001-04-14
  • 打赏
  • 举报
回复
1 sp= 1998h
2 sp=1998h,ax=bx=5000h

16位的?
iProgram 2001-04-14
  • 打赏
  • 举报
回复
push ax 后sp-1
再push bx再减1sp始终指向栈顶。ax和bx互换。
iProgram 2001-04-14
  • 打赏
  • 举报
回复
push ax
《IBM—PC汇编语言程序设计》习题参考答案 第 一 章. 习 题 1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数: (1) 369 (2) 10000 (3) 4095 (4) 32767 答:(1) 369=1 0111 0001B=171H (2) 10000=10 0111 0001 0000B=2710H (3) 4095=1111 1111 1111B=FFFH (4) 32767=111 1111 1111 1111B=7FFFH 1.2 将下列二进制数转换为十六进制数和十进制数: (1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45 (2) 1000 0000B=80H=128 (3) 1111 1111 1111 1111B=FFFFH=65535 (4) 1111 1111B=FFH=255 1.3 将下列十六进制数转换为二进制数和十进制数: (1) FA (2) 5B (3) FFFE (4) 1234 答:(1) FAH=1111 1010B=250 (2) 5BH=101 1011B=91 (3) FFFEH=1111 1111 1111 1110B=65534 (4) 1234H=1 0010 0011 0100B=4660 1.4 完成下列十六进制数的运算,并转换为十进制数进行校核: (1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F 答:(1) 3A+B7H=F1H=241 (2) 1234+AFH=12E3H=4835 (3) ABCD-FEH=AACFH=43727 (4) 7AB×6FH=35325H=217893 1.5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。 (1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76) 答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0 (2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0 (3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0 (4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1 (5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1 (6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6 下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么? (1) D8 (2) FF 答:(1) D8H表示的带符号数为 -40,D8H表示的无符号数为216; (2) FFH表示的带符号数为 -1, FFH表示的无符号数为255。 1.7 下列各数均为用十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的数或字符的ASCII码时,它们所表示的十进制数及字符是什么? (1) 4F (2) 2B (3) 73 (4) 59 答:(1) 4FH表示的十进制数为 79,4FH表示的字符为O; (2) 2BH表示的十进制数为 43,2BH表示的字符为 +; (3) 73H表示的十进制数为115,73H表示的字符为s; (4) 59H表示的十进制数为89,59H表示的字符为Y。 1.8 请写出下列字符串的ASCII码值。 For example, This is a number 3692. 答:46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH 0AH 0DH 54H 68H 69H 73H 20H 69H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H 36H 39H 32H 2EH 0AH 0DH 第 二 章. 习 题 2.1 在80x86微机的输入/输出指令中,I/O端口号通常是由DX寄存器提供的,但有时也可以在指令中直接指定00~FFH的端口号。试问可直接由指令指定的I/O端口数。 答:可直接由指令指定的I/O端口数为256个。 2.2 有两个16位字1EE5H和2A3CH分别存放在80x86微机的存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。 答:存储器里的存放情况如右上图所示。 2.3 在IBM PC机的存储器中存放信息如右下图所示。试读出30022H和30024H字节单元的内容,以及30021H和30022H字单元的内容。 答:30022H字节单元的内容为ABH;30024H字节单元的内容为EFH。30021H字单元的内容为AB34H;30022H字单元的内容为CDABH。 2.4 在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢? 答:3017:000A、3015:002A和3010:007A的存储单元的物理地址都是3017AH。 2.5 如果在一个程序开始执行以前(CS)=0A7F0H,(如16进制数的最高位为字母,则应在其前加一个0) (IP)=2B40H,试问该程序的第一个字的物理地址是多少? 答:该程序的第一个字的物理地址是0AAA40H。 2.6 在实模式下,存储器中每一段最多可有10000H个字节。如果用调试程序DEBUG的r命令在终端上显示出当前各寄存器的内容如下,请画出此时存储器分段的示意图,以及条件标志OF、SF、ZF、CF的值。 C>debug -r AX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC 答:此时存储器分段的示意图如右图所示。OF、SF、ZF、CF的值都为0。 2.7 下列操作可使用那些寄存器? (1) 加法和减法 数据寄存器等 (2) 循环计数 CX (3) 乘法和除法 AX、DX,乘数和除数用其他寄存器或存储器 (4) 保存段地址 段寄存器 (5) 表示运算结果为0 ZF=1 (6) 将要执行的指令地址 CS:IP (7) 将要从堆栈取出数据的地址 SS:SP
计算机组成原理测试题 如:一. 选择题(每选择1分,共20分) 1. 用ASCII码(七位)表示字符5和7是 (1) ;按对应的ASCII码值来比较 (2) ;二进制的十进制编码是 (3) 。 (1) A. 1100101和1100111 B. 10100011和01110111 C. 1000101和1100011 D. 0110101和0110111 (2) A.“a”比“b”大 B.“f”比“Q”大 C. 空格比逗号大 D.“H”比“R”大 (3) A. BCD码      B. ASCII码 C. 机内码 D. 二进制编码 2. 运算器由许多部件组成,但核心部件应该是________。 A. 数据总线 B. 数据选择器 C. 算术逻辑运算单元 D 累加寄存器。 3. 对用户来说,CPU 内部有3个最重要的寄存器,它们是 。 A. IR,A,B B. IP,A,F C. IR,IP,B D. IP,ALU,BUS 4. 存储器是计算机系统中的记忆设备,它主要用来 。 A. 存放程序 B. 存放数据 C. 存放微程序 D. 存放程序和数据 5. 完整的计算机系统由 组成。 A. 主机和外部设备 B. 运算器、存储器和控制器 C. 硬件系统和软件系统 D. 系统程序和应用程序 6.计算机操作系统是一种 (1) ,用于 (2) ,是 (3) 的接口。 (1) A. 系统程序 B. 应用程序 C. 用户程序 D. 中间程序 (2) A.编码转换 B. 操作计算机 C. 控制和管理计算机系统的资源 D. 把高级语言程序翻译成机器语言程序 (3) A. 软件和硬件 B. 主机和外设 C. 用户和计算机 D. 高级语言和机器语言机 7.磁盘上的磁道是 (1) ,在磁盘存储器中查找时间是 (2) ,活动头磁盘存储器的平均存取时间是指 (3) ,磁道长短不同,其所存储的数据量 (4) 。 (1) A. 记录密度不同的同心圆 B. 记录密度相同的同心圆 C. 阿基米德螺线 D. 随机同心圆 (2) A. 磁头移动到要找的磁道时间 B. 在磁道上找到扇区的时间 C. 在扇区中找到数据块的时间 D. 以上都不对 (3) A. 平均找道时间 B. 平均找道时间+平均等待时间 C. 平均等待时间 D. 以上都不对 (4) A. 相同 B.长的容量大 C. 短的容量大 D.计算机随机决定 8. 中断向量地址是 。 A.子程序入口地址 B.中断服务子程序入口地址 C.中断服务子程序入口地址指示器 D.剩余程序入口地址 9. 中断允许触发器用来表示 。 A. 外设提出中断请示 B. 响应中断 C.开放或关闭中断系统 D.正在进行中断处理 10.外部设备提出中断请示的条件是 。 A.一个CPU周期结束 B. 外设工作完成和系统允许 C. CPU开放中断系统 D. 总线空闲 11.在3种集中式总线控制中,_______方式响应时间最快,_______方式对电路故障最敏感。 A.链式查询 B. 计数器定时查询 C. 独立请求 12.微程序控制器中,机器指令与微指令的关系是________。 A. 每一条机器指令由一条微指令执行 B. 每一条机器指令由一段用微指令编成的微程序来解释执行 C. 一段机器指令组成的程序可由一条微指令来执行 D. 一条微指令由若干条机器指令组成 二、是非题:(每小题1分,共5分) ( )1. 定点补码运算时,其符号位不参加运算。 ( )2. 浮点运算可由阶码运算和尾数运算两部分联合实现。 ( )3. 一般情况下,ROM和RAM在存储体中是统一编址的; ( ) 4. 由于半导体存储器加电后才能存储数据,断电后数据就丢失了,因此,用EPROM做成的存储器,加电后必须重写原来的内容。 ( )5. 与各中断源的中断级别相比较,CPU(或主程序)的级别最高。 三.填空题:(每空1分,共20分) 1.在一个8位二进制的机器中,补码表示的整数范围是从 (小)到 (大)。这两个数在机器字中的补码表示为 (小)到 (大)。数0的补码为 。 2.使用高速缓冲存储器是为了解决 问题,在执行程序时,必须把 映射到主存储器的 空间上,这个过程称为 。 3.某计算机的存储容量是64 KB,若按字节寻址,则寻址的范围为 ,需要地址线 根,数据线 根,若字长为32位,按字编址,寻址的范围 。 4.输入输出的数据传送控制主要有 、 、 和 四种。 5.Neumann计算机属于 驱动方式,数据流计算机属于 驱动方式,归约计算机属于 驱动方式。 四.计算题:(每小题5,共15分) 1.存储器的带宽有何物理意义? 设存储器数据总线宽度为32位,存取周期为250ns,这个存储器的带宽是多少? 2.把下列十进制数转换为7位字长的二进制数: 17     0.75  3.在8086中SP的初值为2000HAX3000HBX5000H试问: (1) 执行指令 PUSH AX 后,SP=? (2) 再执行指令 PUSH BX 及 POP AX 后,SP=?,BX=? ,AX=? 并画出堆栈变化示意图。 五.简答与编程题:(第1、2小题每题5分,第3小题10分,共20分) 1. 计算机的运算速度与什么有关?计算机的主存容量与什么有关?计算机的运算精度与什么有关? 2. 绿色计算机有哪些要求? 3.根据以下要求写出相应的8086汇编语言指令。 (1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。 (2) 用寄存器BX和S的基址变址寻址方式把存储器中的个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。 (3) 用寄存器BX和偏移量0BF2H的寄存器相对寻址方式把存储器中的一个字和 (CX) 相加并把结果送回存储器中。 (4) 用偏移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回该存储单元中。 (5) 把数0B5H与 (AL) 相加,并把结果送回AL中。 六.分析与设计题:(每小题10分,共20分) 1.试用三种基本门组成“异或”门,请画出逻辑电路图。 2.设计一个16K×16位的芯片构成64K×16位的存储器,问: (1)需要几片芯片? (2) 画出组织结构图。
【汇编语言程序设计】试题及答案合集 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D: .号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B) A:寄存器寻址 B:相对基址变址寻址 C:变址寻址 D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(B) A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。 B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧