微机原理 汇编语言 小舅子考试问我些编程问题,在下实在不会,求各路英雄赐教解困。谢谢!

2024-12-23 01:07:11
推荐回答(4个)
回答1:

1.计算机系统中cpu的地址总线有21条则能寻址的最大内存空间为多少mb
答:计算机用0和1表示某种状态,一根地址线能表示两种状态,两根地址线能表示四种状态,以此类推,21根地址线能够表示2的21次幂,即2097152个字节。所以,21条地址线能寻址的最大内存空间为2MB。

2.8086栈操作一次处理多少个字节
答:2字节。

3.指令ADD AX,12H中的目的操作是什么寻址方式
答:寄存器寻址方式。

4.在8086系统中默认的8位累加器是什么
答:AL

5.PD伪指令定义变量有多少个字节
答:PD伪指令,疑为楼主误输,本意是DD吧。定义变量的伪指令:
DB:字节
DW:字(双字节)
DD:双字(四字节)
DF:六字节
DQ:八字节
DT:十字节

6.8086的AH寄存器是多少位寄存器
答:8位寄存器。

7.MOV AX[BX]指令中,目的操作数是什么
答:AX

8.POP指令的作用是什么
答:把堆栈段中栈顶指针所指的一个字弹出并赋给某个16位寄存器或16位内存单元,同时,栈顶指针加2。

9.XCHG指令的作用是什么
答:将源操作数与目的操作数的值互换。

10.用DEBUG调试程序时A命令的作用是什么
答:输入汇编语言指令。

11.MOV[BP12/12H],AX 假设(AX)=1212H,(DS)=2000H,(CS)=5000H,(SS)=6000H,(BP)=2000H计算操作书的物理地址
答:楼主这条指令有语法错误,试改为:MOV [BP+1212H],AX
则目的操作数的物理地址为:23232H

12.限定只能使用堆栈操作,不能用其它指令,将AX与BX寄存器的内容对调,写出判断程序片断。
答:不需判断,直接用push和pop指令即可实现。指令代码如下:
push ax
push bx
pop ax
pop bx

13.已知[DS]=1111H,[SS]=2222H,[ES]=3333H,[BX]=11H,[BP]=22H,计算"MOV AX,[BX]"中汇编指令源操作数寻址所指向的物理单元
答:11121H

14.已知[AL]=8AH [CL]=3;[CF]=1;以及一连续执行的汇编程序,在下列方格内分别填入每一步执行后AL和CF正确值(一共9个格子,要求写2进制数,前8个格子写AL最后一个CF。)
SHL AL,1; |0|0|0|1|0|1|0|0|1|
ROL AL,CL;|1|0|1|0|0|0|0|0|0|
RCR AL,CL;|0|0|0|1|0|1|0|0|0|

15.写出下列指令的含义分别是什么 JAE, JGE ,JB ,JCXZ
答:
1、JAE:条件转移指令,当目的操作数高于或等于源操作数时转移,用于无符号数的比较或判断。
2、JGE:条件转移指令,当目的操作数大于或等于源操作数时转移,用于有符号数的比较或判断。
3、JB:条件转移指令,当目的操作数低于源操作数时转移,用于无符号数的比较或判断。
4、JCXZ:条件转移指令,当计数寄存器CX=0时转移,用于字符串的比较活扫描。

16.1+2+3+...N累加加到1000,统计被累加的自然个数送CN,累加和送SUM
答:下面的程序通过编译、运行正确。当自然数达到45的时候,累加和为1035。
Code Segment
Assume CS:Code,DS:Code
CN DW ?
SUM Dw ?
Start: push cs
pop ds ;使数据段与代码段在同一个段
xor ax,ax ;初始化累加和
mov cx,1 ;自然数初值
Adding: add ax,cx ;相加
cmp ax,1000 ;累加和与1000相比较
jae Save_Value ;若大于或等于1000,结束累加,保存相关数据
inc cx ;计数
jmp Adding
Save_Value: mov cn,cx ;保存被累加的自然数个数
mov SUM,ax ;保存累加和
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束

17.显示一个字符串倒序显示,将下面程序填写完整并写出结果
答:这道题,楼主有几处抄写错误,根据题意及原程序段,我给更正一下。凡填空处,所填内容除已经定义的标识符外,其它内容皆用小写,并在其后以“;序号”的方式标注。
DATA SEGMENT
MSG DB 'HIS IS A STRING!$'
CT=$-MSG-2
CRLF DB OAH,ODH,'$'
DATA ends ;1
CODE SEGMENT
ASSSUME DS:DATA,CS:CODE,ES:DATA
MAIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV ES,AX
lea dx,MSG ;2
MOV AH,9
INT 21H
LEA DX,CRLF
mov ah,9 ;3
INT 21H
LEA BX,MSG
ADD BX,CT
MOV CX,CT+1
NEXT:
mov dl,[bx] ;4
MOV AH,2
INT 21H
DEC BX
LOOP NEXT
mov ah,4ch ;5
INT 21H
CODE ENDS
END MAIN

补充回答:
六、判断题
(对)同一8086汇编程序中,可以多次用=伪指令对同一个常量进行定义。
(对)宏定义的长度对汇编后的程序长度没有影响,但。。。用宏的次数对汇编后的长度有影响。
(对)在8086的汇编指令中,源操作数和目的操作数不能同时存储器操作数。
(错)伪指令DW的作用是定义一个字节的数量。
(对)PUSH指令的作用是执行堆栈的压入操作。

1. 计算机系统中CPU的地址总线有21条,则其能寻址的最大内存空间 2 MB。
2. 8086系统中堆栈操作一次处理 2 个字节。
3. 指令ADD AX,RH中,目的操作数是 寄存器 寻址方式。
4. 在8086系统中,默认的8位累加器是 AL。
5. DD伪指令定义的变量有 4 个字节。
6. MOV AX,[BX] 指令中目的操作数是 B 寻址方式。
A.立即 B.寄存器 C.寄存器间接 D.直接、
7. POP指令的作用是(C)
A.将某个字数数据压入堆栈。B.将某个字节数据压入堆栈。C.将某个字数据从堆栈弹出D.将状态寄存器压入堆栈。
8. XCHG指令的作用是(C)
A.将操作数从8位扩展为16位。B.将操作数从16位压缩为8位。C.将两个操作数进行交换。D.用源操作数替换目的操作数。
9. DEBUG调试程序时,A命令的作用是(C)
A.现实数据 B. 删除数据 C.汇编程序 D.单步运行

回答2:

1,2的21次幂b,2的20次幂是1mb,所以是2mb
2,16为机器是2个字节,32为的是4个字节
3,立即数
4,8为的是al,16位的是ax
5,这个不清楚
6,8位 ax分成al,与ax
7,ds×10+bx指向的内容
8,出栈
9,交换
10,改命令是从指定的地址开始输出汇编语句的
11,ss×10+bp×12/12
12,push ax
push bx
pop ax
pop bx

13,ds×10+bx 指向的内容
14,00010100 1
00010101 1
11000101 0
15,jae 不低于/高于等于转移 测试cf=0
jge 不小于/大于等于转移 测试条件 sf=of
jb 低于/不高于等于 转移 测试条件 cf=1
jcxz 如果cx寄存器等于0则跳转。
16, MOV DX,1h
MOV BX,2h
MOV CX,999
AB:
ADD DX,BX
ADD BX,1
LOOP AB
MOV [SUM],BX
17,
第一个DATA ENDS
第二个MOV DX,OFFSET MSG
第三个MOV AH,0AH
第四个MOV DX,BX
第五个MOV AH,4CH
(对)同一8086汇编程序中,可以多次用=伪指令对同一个常量进行定义。
(对)宏定义的长度对汇编后的程序长度没有影响,但。。。用宏的次数对汇编后的长度有影响。
(对)在8086的汇编指令中,源操作数和目的操作数不能同时存储器操作数。
(错)伪指令DW的作用是定义一个字节的数量。
(对)PUSH指令的作用是执行堆栈的压入操作。

1. 计算机系统中CPU的地址总线有21条,则其能寻址的最大内存空间 2 MB。
2. 8086系统中堆栈操作一次处理 2 个字节。
3. 指令ADD AX,RH中,目的操作数是 寄存器 寻址方式。
4. 在8086系统中,默认的8位累加器是 AL。
5. DD伪指令定义的变量有 4 个字节。
6. MOV AX,[BX] 指令中目的操作数是 (C) 寻址方式。
A.立即 B.寄存器 C.寄存器间接 D.直接、
7. POP指令的作用是(C)
A.将某个字数数据压入堆栈。B.将某个字节数据压入堆栈。C.将某个字数据从堆栈弹出D.将状态寄存器压入堆栈。
8. XCHG指令的作用是(C)
A.将操作数从8位扩展为16位。B.将操作数从16位压缩为8位。C.将两个操作数进行交换。D.用源操作数替换目的操作数。
9. DEBUG调试程序时,A命令的作用是(C)
A.现实数据 B. 删除数据 C.汇编程序 D.单步运行

回答3:

嘿嘿,看完后才知道我汇编为什么当初没及格,看起来还真有好多不会的,挑几个会的答答吧,答错了不要见怪啊。
1应该是2MB吧
2我觉的是16位操作,也就是2个字节
3目的操作是寄存器直接寻址吧
4 AL吧
5 不知道,好像没有啊
6 8位
7 不知道
8 将堆栈顶的一个字弹出到目的地址中
9 交换源操作数和目的操作数的内容
10 不知道了
11 不会
12 push ax
push bx
pop ax
pop bx
13 no
下面太麻烦,不好意思,高手来答吧

回答4:

7题是 AX
10 A命令的意思是:从指定地址开始汇编语句,并把他们汇编成机器代码相继放在从指定地址开始的存储器中