77范文网 - 专业文章范例文档资料分享平台

汇编 复习思考题(3)

来源:网络收集 时间:2019-02-15 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

8. 下列程序段执行完后,(BX)=____________.

MOV CL, 3 MOV BX, 0B7H ROL BX,1 ROR BX, CL

9. 试分析执行下面的程序段后,(DX)=_____________。 MOV AX, 0FF00H MOV CX, 3H MUL CX

10. 分析下面的程序,画出堆栈最满时各单元的地址及内容。

;******************************************** S_SEG SEGMENT AT 1000H ;定义堆栈段

DW 200 DUP (?) ;200*2=190H TOS LABEL WORD S_SEG ENDS

;******************************************** C_SEG SEGMENT ;定义代码段 ASSUME CS: C_SEG, SS: S_SEG START: MOV AX, S_SEG

MOV SS, AX ;设置SS寄存器的值 MOV SP, OFFSET TOS;SP指向栈底 PUSH DS ;DS的值压入栈 MOV AX, 0 PUSH AX ;0压入栈 ┇

PUSH T_ADDR PUSH AX PUSHF ┇ POPF POP AX POP T_ADDR RET ;

--------------------------------------------------------------------------

C_SEG ENDS ;代码段结束

;******************************************

END START ;程序结束 11.假设在数据段定义有

ARRAY DW 1,2,$+4,3,4

且ARRAY在汇编时分配的偏移地址为0074,则汇编后“$+4”存储单元的值为____________。

12. 如果在数据段中定义:

xyz dw 1,2,3,4,5,6 xyzend dw ? 在代码段中执行 MOV CX, (xyzend-xyz)/2 后,(CX)=__________。

13.假设子程序subp设计中,要用到寄存器AX、BX、CX与其他子程序发生冲突。请完成如下该子程序设计: subp proc far push cx push ax push bx

(本子程序指令系列) __________ __________ __________ ret

subp endp

14.试分析执行下面的程序段后,(AH)=_____________。

MOV AL, 0FFH MOV CL, 2H MUL CL

15. 试分析执行下面的程序段后,(AH)=_____________。

MOV AX, 00FFH MOV CL, 3H DIV CL

四、简答题:

1.请给出建立、运行一个汇编语言程序的基本步骤。 2. 伪指令有什么作用?

3. 有两个16位字1EE5H和2A3CH分别存放在80x86微机的存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。

4. 在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢?

5. 如果在一个程序开始执行以前(CS)=0A7F0H,(如16进制数的最高位为字母,则应在其前加一个0) (IP)=2B40H,试问该程序的第一个字的物理地址是多少? 6. 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么? (1) 立即寻址 (2) 直接寻址

(3) 使用BX的寄存器寻址 (4) 使用BX的间接寻址

(5) 使用BX的寄存器相对寻址 (6) 基址变址寻址 (7) 相对基址变址寻址

7. 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。要求使用以下几种寻址方式: (1) 寄存器间接寻址 (2) 寄存器相对寻址 (3) 基址变址寻址

7. 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。 (1) MOV AX, 1200H (2) MOV AX, BX

(3) MOV AX, [1200H] (4) MOV AX, [BX] (5) MOV AX, 1100[BX] (6) MOV AX, [BX][SI] (7) MOV AX, 1100[BX][SI]

五、程序设计:

1.下面为汇编语言程序的框架,请完成整个框架,保证程序运行结束能正确返回DOS.

……

code segment main proc far assume …… start:

; 给出用ret正确返回DOS的汇编指令

________________

________________ ________________ …… ret main endp code ends

end start

2.下面程序段用来计算Begin到Count的自然数的和,并把结果保存到变量SUM中,请完成如下程序。

Data1 SEGMENT Begin dw 11 Count dw 20 SUM dw ? Data1 ENDS CODE SEGMENT MAIN PROC FAR

ASSUME CS:CODE,DS:Data1 START :

MOV AX,Data1 MOV DS,AX

MOV AX,4C00H

INT 21H MAIN ENDP CODE ENDS

END START

3. 在数据段中定义如下DAT1和DAT2变量:

DAT1

DAT2

DB ‘ABCDEFGHI’ DB 9 DUP(0)

请编写一个程序段,用rep movsb指令,把DAT1的内容复制到DAT2中。

4. 假设在数据段中定义如下变量: DAT_BY DB 20H dup(?) 试编制一程序段,用串操作指令实现以DAT_BY为首址的20H个字节单元中存放相同字符‘A’(设DA_BY存储区已有ES指向)。

5. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

6. 编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。

7. 编写一条宏指令CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。

8. 下列程序段实现将数据区ABUFl首址开始的100个字节数据传送到ABUF2

为首址的数据区去。 CLD

MOV SI,OFFSET ABUFl ______________________________ MOV CX,100

___________________________________

9. 下面程序段是在DAI开始的10个字节中依次存入数据?9?,?8?,……?1?,?0?,在横线处填入指令。

MOV CX,10

__________________________ MOV AL,′9′ CLD LOP:STOSB

__________________________ LOOP LOP

10. 某程序用单个字符显示的INT 21H的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。

STRING DB‘COMPUTER’,‘$’ ┇

MOV BX,0FFSET STRING

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库汇编 复习思考题(3)在线全文阅读。

汇编 复习思考题(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/474142.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: