《汇编语言程序设计》练习题一

举报
资源描述
欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!汇编语言程序设计练习题一 一、简答题(40 分)1、有两个 16 位字 1EE5H 和 2A3CH 分别存放在 8086 微机的存储器的 000B0H 和000B3H 单元中,请用图表示出它们在存储器里的存放情况。答:2、8086 微机的存储器中存放信息如下图所示。试读出 30022H 和 30024H 字节单元的内容,以及 30021H 和 30022H 字单元的内容。答:字节单元:(30022H)=AB H,(30024H)=EF H 字单元:(30021H)=AB34 H,(30022H)=CDAB H。3、写出把首地址为 BLOCK 的字数组的第 6 个字送到 DX 寄存器的指令。要求使用以下几种寻址方式:(1)寄存器间接寻址(2)寄存器相对寻址(3)基址变址寻址 答:欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!(1)MOV BX,OFFSET BLOCK+0AH MOV DX,BX(2)MOV BX,0AH MOV DX,BLOCKBX(3)MOV BX,OFFSET BLOCK MOV SI,0AH MOV DX,BXSI 4、说明下列语句所分配的存储空间及初始化的数据值。(1)BYTE_VAR DB BYTE,12,-12H,3 DUP(0,?,2 DUP(1,2),?)(2)WORD_VAR DW 5 DUP(0,1,2),?,-5,BY,TE,256H 答:BYTE_VAR 42 59 54 45 0C EE 00?-01 02 01 02?00?01 02 01 02?00?01 02-01 02?WORD_VAR 00 00 01 00 02 00 00 00-01 00 02 00 00 00 01 00 02 00 00 00 01 00 02 00-00 00 01 00 02 00?FB FF 59 42 45 54 56 02-5、下面的宏指令 CNT 和 INC1 完成相继字存储:CNT MACRO A,B A&B DW?ENDM INC1 MACRO A,B CNT A,%B B=B+1 ENDM 请展开下列宏调用:C=0 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!INC1 DATA,C INC1 DATA,C 答:宏展开:2 DATA0 DW?2 DATA1 DW?6、那些寄存器可以用来指示存储器地址?答:可以用来指示存储器地址的寄存器有 BX、SP、BP、DI、SI、IP、CS、DS、7、如果在一个程序开始执行以前(CS)=0A7F0H(如十六进制数的最高位为字母,则应在其前加一个 0),(IP)=2B40H,试问该程序的第一个字的物理地址是多少?答:该程序的第一个字的物理地址是 0AAA40H。8、在 0624 单元内有一条二字节 JMP SHORT OBJ 指令,如其中位移量为(1)27H,(2)6BH,(3)0C6H,试问转向地址 OBJ 的值是多少?答:(1)064DH(2)0691H(3)05ECH 9、在 ARRAY 数组中依次存储了七个字数据,紧接着是名为 ZERO 的字单元,表示如下:ARRAY DW 23,36,2,100,32000,54,0 ZERO DW?(1)如果 BX 包含数组 ARRAY 的初始地址,请编写指令将数据 0 传送给 ZERO单元。(2)如果BX包含数据0在数组中的位移量,请编写指令将数据0传送给ZERO单元。欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!答:(1)MOV AX,BX+0CH MOV ZERO,AX(2)MOV AX,ARRAYBX MOV ZERO,AX 10、按下面的要求写出程序的框架。(1)数据段的位置从 0E000H 开始,数据段中定义一个 100 字节的数组,其类型属性既是字又是字节;(2)堆栈段从小段开始,段组名为 STACK;(3)代码段中指定段寄存器,指定主程序从 1000H 开始,给有关段寄存器赋值;(4)程序结束。答:DATASG SEGMENT AT 0E000H WORD_ARRAY LABEL WORD BYTE_ARRAY DB 100 DUP(?)DATASG ENDS STACKSG SEGMENT PARA STACK STACK DW 32 DUP(?)TOS LABEL WORD STACKSG ENDS CODESG SEGMENT ORG 1000H MAIN PROC FAR ASSUME CS:CODESG,DS:DATASG,ES:DATASG,SS:STACKSG START:MOV AX,STACKSG MOV SS,AX 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!MOV SP,OFFSET TOS PUSH DS SUB AX,AX PUSH AX MOV AX,DATASG MOV DS,AX MOV ES,AX RET MAIN ENDP CODESG ENDS END START 11、编写一条宏指令 CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。答:CLRB MACRO N,ARRAY CLD MOV CX,N MOV AL,20H LEA DI,ARRAY REP STOSB ENDM 12、下列操作可使用哪些寄存器?(1)加法和减法(2)循环计数(3)乘法和除法(4)保存及使用段地址(5)表示运算结果为 0 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!(6)将要执行的指令地址 答:(1)AX、BX、CX、DX、AH、AL、BH、BL、CH、CL、DH、DL、SP、BP、DI、SI(注意:学生尽量不要用 SP 参与加减运算)(2)CX(3)DX、AX、AH、AL(4)CS、DS、ES、SS(5)FLAGS(6)IP(7)SS、SP、BP 13、下面几种说法中唯一正确的是哪一种?A、单独用 16 位地址线提供的地址可以访问 1M 字节存储器空间。B、数据段段首址可以是 00000 FFFFF 中任意一个地址。C、用 WS、EDIT 等编辑软件可以编写汇编程序。D、堆栈段段首地址可以是 FFFE0H。答:唯一正确的是 D。14、设当前数据段寄存器的内容为 1B00H,在数据段的偏移地址 2000H 单元内,含有一个内容为 0FF10H 和 8000H 的指针,它们是一个 16 位变量的偏移地址和段地址,试写出把该变量装入 AX 的指令序列,并画图表示出来。答:MOV BX,2000H LES DI,BX MOV AX,ES:DI 15、给出赋值语句如下:ALPHA EQU 100 BETA EQU 25 GAMMA EQU 2 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!下列表达式的值是多少?(1)ALPHA*100+BETA(2)ALPHA MOD GAMMA+BETA(3)(ALPHA+2)*BETA 2(4)(BETA/3)MOD 5(5)(ALPHA+3)*(BETA MOD GAMMA)答:(1)10025(2)25(3)2548(4)3(5)103 16、试编制宏定义,要求把存储器中的一个用 EOT 字符结尾的字符串传送到另一个存储区中去。答:SEND MACRO SCHARS,DCHARS LOCAL NEXT,EXIT PUSH AX PUSH SI MOV SI,0 NEXT:MOV AL,SCHARSSI MOV DCHARSSI,AL CMP AL,24H JZ EXIT INC SI JMP NEXT EXIT:POP SI POP AX ENDM 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!二、写程序段题(20 分)1、试编写一程序,要求能从键盘接收一个个位数 N,然后响铃 N 次(响铃的 ASCII码为 07)。答:code segment assume cs:code main proc far start:push ds mov ax,0 push ax mov ah,1 int 21h sub al,30h cmp al,0 jz exit mov cl,al mov ch,0 again:mov ah,2 mov dl,7 int 21h loop again exit:ret main endp 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!code ends end start 2、设有 10 个学生的成绩分别是 76,69,64,90,73,88,99,63,100 和 80分。试编制一个子程序统计 6069 分,7079 分,8089 分,9099 分和100 分的人数并分别存放到S6,S7,S8,S9 和 S10 单元中。答:dseg segment num dw 76,69,84,90,73,88,99,63,100,80 n dw 10 s6 dw 0 s7 dw 0 s8 dw 0 s9 dw 0 s10 dw 0 dseg ends code segment main proc far assume cs:code,ds:dseg start:push ds sub ax,ax push ax mov ax,dseg mov ds,ax call sub1 ret main endp 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!sub1 proc near push ax push bx push cx push si mov si,0 mov cx,n next:mov ax,numsi mov bx,10 div bl mov bl,al cbw sub bx,6 sal bx,1 inc s6bx add si,2 loop next pop si pop cx pop bx pop ax ret sub1 endp code ends 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!end start 3、在 STRING 到 STRING+99 单元中存放着一个字符串,试编制一程序测试该字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置 0。答:mov dx,100 mov si,0 repeat:mov al,stringsi cmp al,30h jb goon cmp al,39h ja goon or cl,20h;(cl)51 jmp exit goon:inc si dec dx jnz repeat and cl,0dfh;(cl)50 exit:4、设有 10 个学生的成绩分别是 76,69,64,90,73,88,99,63,100 和 80分。试编制一个子程序统计 6069 分,7079 分,8089 分,9099 分和100 分的人数并分别存放到S6,S7,S8,S9 和 S10 单元中。答:dseg segment 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!num dw 76,69,84,90,73,88,99,63,100,80 n dw 10 s6 dw 0 s7 dw 0 s8 dw 0 s9 dw 0 s10 dw 0 dseg ends code segment main proc far assume cs:code,ds:dseg start:push ds sub a
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号