本MOOC课程主要介绍适用于8086CPU的汇编语言指令及相关的程序设计方法,每一章都配套相应的练习。通过本课程的学习,学生可以掌握汇编语言程序设计的基本方法和技术,加深对计算机系统的认识和理解。该MOOC课程和课程团队编著的《汇编语言程序设计(第2版)》相配套,有助于高校线上线下混合式教学的开展。
安徽大学汇编语言程序设计(2023秋)课后作业题答案
开课机构:安徽大学 教师团队:刘慧婷、吕钊、纪霞等4位老师 总点击数:
第一章 计算机基本原理
- 选择下列十进制数对应的二进制数和十六进制数。67 ( ) A1111011, 7B B100010, 22 C11111110, FE …
- 选择下列十进制数对应的二进制数和十六进制数。34 ( ) A1111011, 7B B100010, 22 C11111110, FE …
- 选择下列十进制数对应的二进制数和十六进制数。254 ( ) A1111011, 7B B100010, 22 C11111110, FE…
- 选择下列十进制数对应的二进制数和十六进制数。123 ( ) A1111011, 7B B100010, 22 C11111110, FE…
- -24的8位二进制补码为( ) A0100 0000 B00011000 C1110 1000 D11100111
- 写出每条汇编指令执行后相关寄存器的值。 mov ax, 1345h ax= A2445h B1345h C2434h D3412h…
- 写出每条汇编指令执行后相关寄存器的值。 mov ah, 24h ax= A2445h B1345h C2434h D3412h…
- 写出每条汇编指令执行后相关寄存器的值。 mov al, 45h ax= A2445h B1345h C2434h D3412h…
- 写出每条汇编指令执行后相关寄存器的值。 mov bx, 3412h bx= A2445h B1345h C2434h D3412h…
- 以 8086/8088 为 CPU的微机内存最大容量为( )。 A4MB B1MB C640KB D64KB
- 下面几个程序中不属于翻译程序的是 A汇编程序 B编译程序 C解释程序 D编辑程序…
- 与1A.5H不等的数据是 A26.3125D B11010.0101B C32.5Q
- 补码01010101表示的真值为 A93 B43 C42 D85
- 用8位二进制数表示-0补码为 A10000000 B11111111 C00000000
- 下列四个寄存器中,不允许用传送指令赋值的寄存器是 A CS B DS C ES D SS…
- 在8位补码表示中,10000000表示的真值为-0
- 在8位补码表示法中,对-128取补会产生溢出。
- 10010110与01011011异或的结果为11011111。
第二章 程序开发与调试
- 下面为DEBUG调入的可执行程序,回答以下问题: -U 0B63:0000 B8620B MOU AX,0B62 0B63:0003…
- 下面为DEBUG调入的可执行程序,回答以下问题: -U 0B63:0000 B8620B MOU AX,0B62 0B63:0003…
- 下面为DEBUG调入的可执行程序,回答以下问题: -U 0B63:0000 B8620B MOU AX,0B62 0B63:0003…
- 下面为DEBUG调入的可执行程序,回答以下问题: -U 0B63:0000 B8620B MOU AX,0B62 0B63:0003…
- 解释DEBUG程序中的如下调试命令。 R( ) A查看或修改寄存器内容 B修改内存单元内容 C单步跟踪命令…
- 解释DEBUG程序中的如下调试命令。 A( ) A查看或修改寄存器内容 B修改内存单元内容 C单步跟踪命令…
- 解释DEBUG程序中的如下调试命令。 E( ) A查看或修改寄存器内容 B修改内存单元内容 C单步跟踪命令…
- 解释DEBUG程序中的如下调试命令。 D( ) A查看或修改寄存器内容 B修改内存单元内容 C单步跟踪命令…
- 解释DEBUG程序中的如下调试命令。 T( ) A查看或修改寄存器内容 B修改内存单元内容 C单步跟踪命令…
- 解释DEBUG程序中的如下调试命令。 G( ) A查看或修改寄存器内容 B修改内存单元内容 C单步跟踪命令…
第三章 操作数的寻址方式
- 指出以下指令中目的操作数的寻址方式,array是变量。 mov array[bx],cx A寄存器相对寻址 B寄存器…
- 指出以下指令中目的操作数的寻址方式,array是变量。 mov [si+bx],9 A寄存器相对寻址 B寄存器寻址…
- 指出以下指令中目的操作数的寻址方式,array是变量。 mov ax,bx A寄存器相对寻址 B寄存器寻址 C…
- 指出以下指令中源操作数的寻址方式,array是变量。 mov ax, array+9 A直接寻址 B立即数寻址 C相…
- 指出以下指令中源操作数的寻址方式,array是变量。 mov bx,[di] A直接寻址 B立即数寻址 C相对基…
- 指出以下指令中源操作数的寻址方式,array是变量。 mov ax, 9 A直接寻址 B立即数寻址 C相对基址…
- 指出以下指令中源操作数的寻址方式,array是变量。 mov ax, array[bx+di] A直接寻址 B立即数寻址 …
- 指令mov ax,DS:[123A]中DS=6542H,65420H+123AH=6665AH 6542H为( ) A段地址 B物理地址 C逻辑地址 …
- 指令mov ax,DS:[123A]中DS=6542H,65420H+123AH=6665AH 123A为( ) A段地址 B物理地址 C逻辑地址 D…
- 指令mov ax,DS:[123A]中DS=6542H,65420H+123AH=6665AH 6665AH为( ) A段地址 B物理地址 C逻辑地址 …
第四章 常用指令系统
- 在数据段定义了ARRAY数组,其中依次存储了4个字数据,根据以下要求把第4个字送AX寄存器。 基址变址寻…
- 在数据段定义了ARRAY数组,其中依次存储了4个字数据,根据以下要求把第4个字送AX寄存器。 使用BX和 A…
- 在数据段定义了ARRAY数组,其中依次存储了4个字数据,根据以下要求把第4个字送AX寄存器。 使用BX的间…
- 在数据段定义了ARRAY数组,其中依次存储了4个字数据,根据以下要求把第4个字送AX寄存器。 直接寻址() …
- 下面指令错误的是 AMOV [SI],2 BMOV BYTE PRT[SI],2 CMOV WORD PRT[SI],2 DMOV [SI],AX…
- 下面指令正确的是() ASHR AX,4 BCMP 6,AX CMOV [FFFe],AX DMOV AX,BX+4
- 求出7450H与1234H的和,根据结果标出OF标志位的值,( ) A0 B1 C2 D3
- 求出7450H与1234H的和,根据结果标出CF标志位的值,( ) A0 B1 C2 D3
- 下面指令正确的是 AMUL BX,CX BDIV 5 CMOV BYTE PTR[SI],AX DMOV AX,[BX+DI]
- 下面指令正确的是 APUSH AL BADD BX,[DI] CLEA [BX],V DMOV [DX],OFFSET V
- 下面指令正确的是 AMOV AX,[DX] BMOV DS,DATA CMOV CS,AX DMOV AX,DX
- 以下哪些指令是错误的? AOUT 61H, AL BOUT DX, AL COUT DX, AH DOUT 61H, AX
- 假定DATA是16位的变量,以下指令正确的是( ) AMOV [DX], DATA BMOV DS, DATA CMOV AX, DATA DMOV …
- 指令( )不改变CF的内容 ADEC AX BADD AX, CX CSUB [BX], CL DSBB AL, DL
- 若AX=1000H,执行“NEG AX”指令后,AX=( ) A1000H B0E000H C0F000H D1001H
- LEA BX, TABLE; TABLE是一个8位的变量,该指令是否正确?
- 选择正确的语句,使得下面的程序可以用移位指令为主实现对AX中的无符号数乘以5,不考虑乘积可能超出1…
- 下列指令中不改变标志寄存器值的指令是() AMOV AX, BX BAND AL, 0FH CSHR BX, CL DADD AL, BL…
- 将DX的内容除以2,正确的指令是() ADIV 2 BDIV DX, 2 CSAR DX, 1 DSHL DX, 1…
- 当执行完下列指令序列后、标志位CF和 SF的值为 MOV AL,0C4H ADD AL,9DH 0,0 0,1 1,0 …
- 当执行完下列指令序列后,标志位CF和SF的值为 MOV AH, 85H SUB AH,32H A 0,0 B 0,1 C …
- 当执行完下列指令序列后,标志位CF和SF的值为 MOV AH, 00H NEG AH A 0,0 B 0,1 C 1,0…
- 己知 AL,BX为无符号数,计算AL* BX的乘积,使用下述程序段 AMUL BX BIMUL BX CXOR AH,AH MUL BX …
- 己知 AL,BX为带符号数,计算AL* BX的乘积,使用下述程序段 AMOV AH,0 MUL BX BXOR AH,AH IMUL BX …
- AL=0AH,下列指令执行后能使AL=05H的是() ANOT AL BAND AL, 0FH CXOR AL, 0FH DOR AL, 0FH…
- 若栈顶的物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为 A20102H B20101H C200FFH …
- SHR AX,CX
- DIV 5
- MUL 5
- ADD [SI],[BX]
- MOV DS,CS
- PUSH AL
- MOV 10,AL
- MOV [DI],[SI]
- MOV SI,[SI]
- SHR AX,3
- SHR CX,1
- ADD [SI],100
- ADD AX,BL
- ADD AX,100
- MOV DX,BH
- MOV DS,2000H
第五章 伪指令
- 现在DS=2000H,BX=0100H,SI=0002H,(20100)=12H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H。执行M…
- 若定义C DW ‘AB’,则“MOV AL,BYTE PTR C”执行后,AL=( ) A0AH B0BH C41H D42H…
- 若定义“A EQU 100”,执行“MOV AX,A”后,AX=( ) AA的偏移地址 BA单元中的内容…
- 若定义BUF DW 3 DUP (3 DUP (3)),执行MOV AL,SIZE BUF 后AL=( ) A3 B6 C9 D18
- 若定义“BUF DD 1,2,3,4”,执行MOV AL,TYPE BUF 后AL=( ) A1 B2 C3 D4
- VAL=4,则 MOV AX,8 GE VAL执行后AL=( ) A00H B0FH CFFH D0FFH
- 变量定义如下: DA1 DW 5,2,-3,3 DA2 DW -5,3,24 则指令MOV CX,(DA2-DA1)/2执行后AL=( )。 0…
- 变量定义如下: ORG 4 ARR DW 5, $+8, 8 BUF=$ NEW…
- 变量定义如下: BUF=THIS WORD DAT DB 8, 9 则指令MOV AX,BUF 执行后AX=( ) 0089H 0…
- 变量VAL的定义为: VAL DW 1234H, 5678H,则指令MOV AL,BYTE PTR VAL+2 执行后AL=( ) A12H B34H C56H…
第六章 分支与循环程序设计
- 当X≤Y(X.Y为带符号数)时发生转移的条件转移指令有JL和JC
- 当X<Y(X,Y为无符号数)时发生转移的条件转移指令有JB和JC
- JS [BX]
- 当PF=1时发生转移的条件转移指令为JPO
- 两数相等时进行转移可用指令JZ
- NEXT是程序中某指令语句标号,下述哪个程序段不能实现转移到NEXT语句执行 AJMP NEXT BMOV BX,OFFS…
- 条件转移指令的转移目标距该指令的距离范围为 A-128~127 B-126~129 C-130~125 D-127~128…
- 已知AX= 8078H,BX= 5610H,指令CMP BL, AH执行后OF和CF的值为 A 0,0 B 0,1 C 1,0 D 1,1…
- 当执行完下述指令序列后标志位CF和OF的值为 MOV AH, 73H ADD AH, AH A 0,0 B 0,1 C …
- JMP SI的目标地址偏移量为 ASI 的内容 BSI所指向的内存字单元之内容 CIP+SI的内容 DIP+[SI]…
- 阅读以下程序段,并回答问题。 code segment Assume cs:code start: ROR AL,1…
- 阅读以下程序段,并回答问题。 code segment Assume cs:code start: ROR AL,1 AND …
- 阅读以下程序段,并回答问题。 code segment Assume cs:code start: ROR AL,1…
- 现有程序段如下: MOV AX,A TEST AX, 8000H JZ P1 NOT AX ADD AX,1 …
- 现有程序段如下: MOV AX,A TEST AX, 8000H JZ P1 NOT AX ADD AX,1 …
- 设AX、BX寄存器中存放的是有符号的二进制数据,若执行“CMP AX,BX”指令后,( )L表示大于则转L。 AJZ …
- 已知X,Y 为带符号数,两数比较后,欲判断x≤Y发生转移,应使用指令 AJBE BJL CJNG DJNA…
- 当A≥B时转移的条件转移指令为(A.B为带符号数) AJA BJAE CJG DJGE
- 指令JMP WORD PTR[BX]转移的目标地址是 ABX的内容 BSP+BX之和 CIP+ [BX]之和 DBX指出的内存单…
- REPZ SCASW
- CMPS
- REP LODSB
- MOVSB
- REP MOVS
- 循环体包括哪几部分。 A初始化部分、工作部分、控制部分、修改部分 B工作部分 C工作部分、控制…
- 当 CX=0时REP MOVSB执行的次数为 A1次 B0次
- 在循环次数已知的情况下,采用哪种方法控制循环程序最方便。 A正计数法 B倒计数法 C寄存器终值…
- 循环控制指令与循环体入口指令的距离只能在什么范围内。 A-126~129 B-128~127 C-127~128 D-12…
- 循环控制指令隐含指定哪个寄存器作为循环计数器。 ACL BCX CAL DAX
- 现有程序段如下: DATA SEGMENT ORG 0 ARY DW 0,1,8,5,4,5 DATA ENDS …… …
- 循环指令“LOOP”的操作是( ) ACX先减1,然后再判断CX,若CX=0则转,否则继续执行。 BCX先减1,然后再判断…
第七章 子程序设计
- 子程序对求补后的值以二进制形式显示。(正数的补码=输入) 第一个空应填入( )? code segment ass…
- 子程序对求补后的值以二进制形式显示。(正数的补码=输入) 第二个空应填入()? code segment assume…
- 子程序对求补后的值以二进制形式显示。(正数的补码=输入) 第三个空应填入()? code segment assume…
- 子程序对求补后的值以二进制形式显示。(正数的补码=输入) 第四个空应填入()? code segment assume…
- 补充下列程序第一个括号中的指令,使得程序对堆栈的操作全部利用程序中定义的TOS堆栈,并画出程序执…
- 补充下列程序第一个括号中的指令,使得程序对堆栈的操作全部利用程序中定义的TOS堆栈,并画出程序执…
- 补充下列程序第二个括号中的指令,使得程序对堆栈的操作全部利用程序中定义的TOS堆栈,并画出程序执…
- 补充下列程序第三个括号中的指令,使得程序对堆栈的操作全部利用程序中定义的TOS堆栈,并画出程序执…
- 过程定义如下,补充第一个括号中的指令。 code segment assume cs:code main pr…
- 过程定义如下,补充第二个括号中的指令。 code segment assume cs:code main proc…
- 过程定义如下,补充第三个括号中的指令。 code segment assume cs:code main proc…
- CALL [BX][SI]
- CALL FAR PTR [SI +2]
- CALL FAR PTR [SI +2]
- CALL NEAR PTR [SI]
- CALL [BX]
- CALL AX
- CALL WORD PTR[DI]
- 已知RET指令是属性为NEAR子程序中的返回指令,执行RET前SP=100H,执行后SP的内容为 A102H B100H C…
- 已知RET指令是属性为NEAR子程序中的返回指令,执行RET 4前SP=100H,执行后SP的内容为 A102H B106H …
- 已知SUBR是一个属性NEAR的子程序,下述调用SUBR子程序的指令序列中,哪一个不能实现调用SUBR 的目的…
- 已知SUBR是一个属性NEAR的子程序,下述调用SUBR子程序的指令序列中,哪一个不能实现调用SUBR 的目的…
- 已知CAILI BX执行前SP=100H,执行后SP的内容为 A100H B102H C98H D0FEH
- 已知CAII FAR PTR[BX]执行前SP=100H,执行后SP的内容为 A0FEH B0FCH C104H D96H
第八章 宏汇编
- 宏定义中的形式参数可以多于宏调用的实在参数
- 宏调用的实在参数可以多于宏定义中的形式参数
- 宏定义中可以将寄存器的名称定义为形式参数
- 在宏定义中嵌套定义时,任何层的宏定义都可以在任何时调用
- 在程序中使用宏比使用子程序运行速度高
- 宏的处理是在程序执行过程中处理的
- 宏定义中的标号必须声明为局部标号
- 宏定义中的标号不允许定义为形式参数
- 宏定义中的标号不允许定义为形式参数
- 下面是将某存储区清0的宏定义,如将BUFF开始的100个存储单元清0,则其宏调用格式为 ( ) CLEAR MACRO …
- 已知下述含有条件汇编伪指令的程序段,汇编后的程序清单应为( )。 ARG1 EQU 26H ARG2 EQU…
- 写出下面宏展开的正确形式: 宏定义: shift MACRO rig, m, n …
- 写出下面宏展开的正确形式: 宏定义: shift MACRO rig, m, n …
- 写出下面宏展开的正确形式: 宏定义: shift MACRO rig, m, n …
- 写出下面宏展开的正确形式: 宏定义: shift MACRO rig, m, n …