汇编语言程序设计题目

一、改错(只能对每条错误指令的一个操作数进行修改)。(共10分,每小题1分)
1. MOV BX,AL 改正:
2. MOV AX, A999H 改正:
3. MOV AL, 1234 改正:
4. MOV AX, [CX] 改正:
5. MOV DS, 1000H 改正:
6. ADD [BX],10 改正:
8. PUSH AH 改正:
9. INC [BP] 改正:
9. MOV [DI],WORD PTR [SI] 改正:
10. MUL 10 改正:

二、填空题
1.8086的物理地址有20位,可访问 MB的存储空间。
2.地址表达式中出现的变量或标号,均是取它们的 参加运算。
3.数值表达式的计算是在 期间进行的。
4. 设(DS)=1000H,(ES)=2000H,(SS)=3000H,(SI)=10H,(BP)=20H,(CX)=30H。 实模式下,指令“ MOV CH,[SI][BP+2] ”中,源操作数的物理地址是 ,源操作数的寻址方式是 。
5.若要清除BX中的第12到第7位,需要用语句 实现。
6.字长为8,设二个有符号数的补码分别为 78H 和 87H,那么这二个数的真实的值分别是: 、 。
7.依次执行  MOV AH, 33H
        ADD AH, 5EH
  执行完后,(AH)= ____ OF = ____ SF = ____
8. 下列指令序列执行前,(AX)=1000H,(BX)=2000H,(CX)=3000H,(SP)=1008H。
PUSH AX
PUSH BX
POP CX
则执行后:(CH)= _____________, (SP)= _____________ 。

三、依次执行如下程序段中的各指令,指出每一条指令执行后,AX中的十六进制内容是什么?
MOV AX, 1234H ;(AX) =
SAL AX, 1 ;(AX) =
AND AL, 0FH ;(AX) =
ADD AX, 1000H ;(AX) =
ROR AX, 1 ;(AX) =
XCHG AH, AL ;(AX) =
INC AH ;(AX) =
TEST AX, 8000H ;(AX) =

四、数据段问答题
设当前数据段的定义如下:
DATA SEGMENT
A1 DB 1, 2, 3, 0
B1 DW 5678H, -1
LEN EQU $-B1
C1 DW C1,LEN
D1 DB $-B1,2 DUP(2, 0)
DATA ENDS
1. 以字节为单位,画出该数据段的数据存储示意图, 并在存贮图中标明各变量的偏移地址;
2. 指出执行下列各指令后,各寄存器的内容。
(1)MOV AL, A1+1 ; (AL) = ________
(1)MOV BX, C1 ; (BX) = ________
(2)MOV AX, B1-1 ; (AX) = ________
(3)MOV DL, LEN ; (DL) = ________

五、编程题
缓冲区BUF中有若干个有符号数(每个数占2个字节), 数的个数保存在寄存器AL中, 试编写一个程序求BUF中所有正数的和(不考虑溢出的情况),并将结果保存到AX中。

第1个回答  2012-05-08
一、改错(只能对每条错误指令的一个操作数进行修改)。(共10分,每小题1分)
1. MOV BX,AL 改正: MOV BX,BX
2. MOV AX, A999H 改正:MOV AX,0A999H
3. MOV AL, 1234 改正:MOV AX,1234
4. MOV AX, [CX] 改正:MOV AX,[BX]
5. MOV DS, 1000H 改正:MOV AX,1000H MOV DS,AX
6. ADD [BX],10 改正: ADD BYTE PTR [BX],10
8. PUSH AH 改正:PUSH AX
9. INC [BP] 改正:INC BYTE PTR [BP]
9. MOV [DI],WORD PTR [SI] 改正:MOV DI,WORD PTR [SI]
10. MUL 10 改正:MOV CX,10 MUL CX追问

还有 二,三,四,五 题呢?谢谢!!!!

追答

1.8086的物理地址有20位,可访问 1 MB的存储空间。
2.地址表达式中出现的变量或标号,均是取它们的 有效地址 参加运算。
3.数值表达式的计算是在 期间进行的。
4. 设(DS)=1000H,(ES)=2000H,(SS)=3000H,(SI)=10H,(BP)=20H,(CX)=30H。 实模式下,指令“ MOV CH,[SI][BP+2] ”中,源操作数的物理地址是 1032H ,源操作数的寻址方式是 基止变址寻址 。
5.若要清除BX中的第12到第7位,需要用语句 AND BX,E07FH 实现。
6.字长为8,设二个有符号数的补码分别为 78H 和 87H,那么这二个数的真实的值分别是: 78H 、-79H 。
7.依次执行  MOV AH, 33H
        ADD AH, 5EH
  执行完后,(AH)= _91H___ OF = _0___ SF = __1__
8. 下列指令序列执行前,(AX)=1000H,(BX)=2000H,(CX)=3000H,(SP)=1008H。
PUSH AX
PUSH BX
POP CX
则执行后:(CH)= _____20H________, (SP)= ______1006H_______ 。

三、依次执行如下程序段中的各指令,指出每一条指令执行后,AX中的十六进制内容是什么?
MOV AX, 1234H ;(AX) = 1234H
SAL AX, 1 ;(AX) = 2468H
AND AL, 0FH ;(AX) = 2408H
ADD AX, 1000H ;(AX) = 3408H
ROR AX, 1 ;(AX) = 1A04H
XCHG AH, AL ;(AX) = 041AH
INC AH ;(AX) = 051AH
TEST AX, 8000H ;(AX) = 051AH
一次性恢复不了那么多

追问

第四,五 题帮忙写一下,谢谢!

追答

四、数据段问答题
设当前数据段的定义如下:
DATA SEGMENT
A1 DB 1, 2, 3, 0
B1 DW 5678H, -1
LEN EQU $-B1
C1 DW C1,LEN
D1 DB $-B1,2 DUP(2, 0)
DATA ENDS
1. 以字节为单位,画出该数据段的数据存储示意图, 并在存贮图中标明各变量的偏移地址;
2. 指出执行下列各指令后,各寄存器的内容。
(1)MOV AL, A1+1 ; (AL) = _2_______
(1)MOV BX, C1 ; (BX) = _8H_______
(2)MOV AX, B1-1 ; (AX) = _7800H_______
(3)MOV DL, LEN ; (DL) = ___4H_____

五、编程题
缓冲区BUF中有若干个有符号数(每个数占2个字节), 数的个数保存在寄存器AL中, 试编写一个程序求BUF中所有正数的和(不考虑溢出的情况),并将结果保存到AX中。
DATA SEGMENT
BUF DW 12,0,13,-18,-78,-46,-49,-164
COUNT EQU $-BUF
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AL,COUNT/2
MOV CL,AL
MOV CH,0
LEA SI,BUF
XOR AX,AX
L_START: CMP WORD PTR [SI],0
JLE L_EXIT
ADD AX,[SI]
L_EXIT:INC SI
INC SI
LOOP L_START
MOV BX,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START

给分吧

追问

非常感谢!

本回答被提问者采纳
第2个回答  2012-05-08
AX是改单片机的累加器或者工作寄存器吗?

汇编语言程序设计习题解答
1、设操作码固定,若零地址指令有P种,一地址指令有Q种,则二地址指令最多有几种:解答:根据操作数地址码为6位,则二地址指令中操作码的位数为16 – 6 – 6 = 4。这4位操作码可有24=16种操作。由于操作码固定,则除去了零地址指令P种,一地址指令Q种,剩下二地址指令最多有16 – P – ...

汇编语言程序设计提问
1.ax和bl类型(长度)不同 2.cs不能作为目的操作数 3. inc的操作数应是一个寄存器或内存单元,执行结果是将其内容加1 4.不能直接把立即数传送到段寄存器中,可以改为 mov ax,2000H mov dx,ax 5.add的源操作数不能是段寄存器,只能是通用寄存器、立即数或存储器 6.寄存器间接寻址的寄存器只...

【微机原理】1.汇编语言程序设计(1)
程序结构: 汇编程序由数据段、代码段划分,通过段寄存器如CS、DS、SS来指定内存地址。数据段如DATA SEGMENT,用于存储变量。指令运作: 汇编指令如ADD AX,BX执行有符号数加法,结果存储在AX寄存器,可能产生溢出或负数,这由标志寄存器如CF、OF、SF指示。内存与寄存器: 内存按需分段,寄存器如通用寄存器AX用...

汇编语言程序设计填空题和问答题部分
1.为零 2.偏移 3.4位 4.group name db(前两个不太确定,你再查一下吧)5.CX 6.CALL RET 7.MACRO ENDM 宏体 8.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,填入括号中。A.使用D的直接寻址 (0A2B1H )B.使用BX的寄存器间接寻址 (1000H...

《汇编语言程序设计》 题目解答
MOV AX,-100H MOV BX,16 IMUL BX (1)执行后,AX=F000H,BX=16,DX=FFFFH (2)若将IMUL改为MUL则执行完后,AX=1600H,BX=16,DX=000BH 6、下面程序段中每条指令执行完后,AX的内容是什么(十六进制)?MOV AX,0;AX=0000H DEC AX;AX=FFFFH ADD AX,3;AX=0002H NOT AX;AX=FFFDH XCH...

汇编语言 子程序设计
在子程序中将AX中的值以十六进制形式显示。=== DATA SEGMENT D1 DW 13276 ;数: 0~65535 DATA ENDS ;--- CODE SEGMENT ASSUME CS:CODE, DS:DATA START:MOV AX, DATA MOV DS, AX ;--- MOV AX, D1 ;取来数字.CALL DISP_AX MOV DL, 'H'MOV AH, 2 INT 2...

《汇编语言程序设计》复习题答案求救,分析题!高分,谢谢!
六.程序填空 第一空 0FH 第二空 4AH.这一题的基本思想就是把 BX 循环右移四位,取BL,赋给AL,与上0FH,把高四位清零,得低四位,再加上30H,判断是否超过A,因为A的ASCLL与0-9的ASCLL码不是连续的,所以要根据判断结果再加上07H,就这样了。我原是汇编科代表呢!!哈哈 ...

汇编语言程序设计问题求解
(1) CODE SEGMENT ASSUME CS:CODE START: MOV AX,56 MOV BL,7 DIV BL MOV BX,AX MOV AH,4CH INT 21H CODE ENDS END START (2) NUM

汇编语言程序设计题目
1. MOVBX,AL改正: MOV BX,BX 2. MOV AX, A999H 改正:MOV AX,0A999H 3. MOV AL, 1234改正:MOV AX,1234 4. MOVAX, [CX] 改正:MOV AX,[BX]5. MOVDS, 1000H 改正:MOV AX,1000H MOV DS,AX 6. ADD[BX],10改正: ADD BYTE PTR [BX],10 8. ...

汇编语言的一些程序设计题,谁能举例解答一下
1、交换可以用堆栈进行,AX。BX相互交换内容 PUSH AX PUSH BX POP AX POP BX 这样AX和BX内容就交换了 2、为了方便你理解,写一些不正确的表达式吧 MOV AX,0 相当于 int a=0;XOR AX,AX XOR这个指令,如果后面两个数相同,则为0,并将0存放到第一个寄存器AX中 SUB AX,AX 相当于 ...

相似回答