IBM-PC汇编语言程序设计练习题

IBM-PC汇编语言程序设计练习题,第1张

先做前两个大题吧

一:填空

1. AX又被称为(累加)器。

2. PF=1表示(低八位1的个数)为偶数。

3. *** 作数直接存放在指令中,紧跟在 *** 作码之后,他作为指令的一部分存放在代码段里,这种 *** 作数称为(立即数)。

4. 62A0H+9D60H=(10000)H

5. 标号和变量都有三种属性:(1、段属性 2、偏移属性 3、类型属性)。

6. 在另一个模块中定义而要在本模块中使用的符号必须使用(段寻址)伪 *** 作。(这题不肯定)

7. 逻辑运算是按(位) *** 作。

8. 循环程序通常由(初始化、循环工作与控制、循环结束的处理部分)三部分构成。

9. 129=(100000001)B

10. 机器数为88H,带符号十进制数(-120) 解题过程:88H即10001000B 第一个1表示是负数,而机器中的数都是以补码表示,补码又是原码变反加一,倒推一下,所以对应的正数是01111000,即120,所以~~

11. 将高级语言源程序翻译成机器语言程序的系统程序是(目标程序)。

12. (BP)称为基址指针寄存器

13. 标识运算结果正负的标志是SF。SF=(1)时结果为正。

14. 8086实模式下一个段的大小可达(64K)B

15. 8086中可用于寄存器间接寻址的四个寄存器是(SP、BP、SI、DI)。

16. 在移位指令中,若移位次数大于1,就可将移位次数置于(CL寄存器)中。

17. 宏由(MACRO、ENDM)这一对伪指令来定义。

18. 访问堆栈的指令(如PUSH)只能使用(SS--堆栈段)作为段寄存器。

19. 指令CLD用于清除方向标志而(STD)指令使方向标志置1。

二。简答

根据以下要求,分别写出相应的汇编语言指令或指令序列。

1.把AX寄存器和BX寄存器的内容相减,结果存入AX中。

SBB AX,BX

2.将AX的内容逻辑左移5位。

MOV CL,5

SHL CL

3.将AX的内容,减去0520H和上次运算的借位。

SBB AX,0520H

4.将变量名TABLE的段地址送AX。

MOV AX,SEG TABLE

5.将DI的高四位置为0。

AND DI,0FH

6.输出一个字节到61H号端口。

OUT 61H,AL

7.将SI和DI的内容互换。

XCHG SI,DI

这段代码貌似没有设置cx的值 这是个问题

你其实是不懂REPNE SCASB这行的意思

SCASB指令常与循环指令REPZ/REPNZ合用。例如,REPNZ SCASB 语句表示当 寄存器ECX>0 且 标志寄存器ZF=0,则再执行一次SCASB指令。

比较寄存器AL的值不相等则重复查找的字

ECX 是比较时的最大次数,每扫描一次,ECX减1,当ECX减小到0时,将停止扫描。

所以停止扫描的条件是两个,找到了字符或者已经达到最大次数,未找到字符。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7775334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存