微机原理复习题
一、选择题(20分,在每小题的4个备选答案中选出一个正确的答案编号填写在该题空白处,每题2分)
1. 指令MOV DX,[BX]的寻址方式是 D 。
(A)立即寻址 (B)直接寻址 (C)寄存器寻址 (D)寄存器间接寻址
2. 若AL的内容为3FH,执行SHL AL,1指令后,AL的内容为 A 。
(A)7EH (B)1FH (C)9FH (D)7FH
解析:shl al ,1 即目的操作数各位左移一次,移动一次,相当于将目的操作数乘以2。3fh=63 63*2=126 126=7eh 故选A
3. 属于在工作中需定时刷新的存储器的芯片是 B 。
(A)SRAM (B)DRAM (C)EEPROM (D)EPROM
4. 某EPROM芯片上有19条地址线A0~A18,它的容量为 C 。
(A)128K (B)256K (C)512K (D)1024K
5. 8086/8088CPU的SP寄存器是多少位的寄存器 B 。
(A)8位 (B)16位 (C)24位 (D)32位
6. 在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址,该寄存器是 D 。
(A)SP (B)BX (C)SI (D)DI
解析:stos数据串存储指令 功能:将累加器al或ah中的一个字或字节,传送到附加段中以di为目标指针的目的串中,同时修改di,以指向串中的下一个单元。
7. 8255工作在方式0时,下面哪种说法不正确 C 。
(A)A口输入无锁存能力 (B)A、B口输出有锁存能力
(C)C口输入有锁存能力 (D)A、B、C三个口输出均有锁存能力
解析:对于方式0,规定输出信号可以被锁存,输入不能锁存
8. 采用DMA方式来实现输入输出是因为它 A 。
(A)速度最快 (B)CPU可不参与操作 (C)实现起来比较容易 (D)能对突发事件做出实时响应
9. 工作在最小模式下,8086/8088CPU芯片中,将地址信号锁存的信号是 C 。
(A)DT/R (B)DEN (C)ALE (D)AEN
10. 在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存器 C 。
(A)AX (B)BX (C)CX (D)DX
解析:loop:循环指令。 指令执行前必须事先见重复次数放在cx寄存器中,每执行一次loop指令,cx自动减1。
二、填空题(每小题2分,共10分)
1. 两个无符号数相等,该两数相减后ZF标志= 1 。解析:zf:全零标志位。本次运算结果为0时,zf=1,否则zf=0。
2. 执行LODSB后,SI的内容较该指令执行前增加1,说明DF= 。
3. DMA控制器8237共有 个相互独立的DMA通道。
4. 8086/8088断点中断的向量码是 03H 。
5. 利用8253产生对称的方波,应用其工作方式 3 。解析:8253的工作方式3为方波发生器。
三、判断题(认为正确的在题后 打 “√”号,错误的打“×”号。并写出正确的内容,每题2分,共10分)
1. 8086/8088CPU复位启动地址为0FFFFH 。
2. +128的16位补码是1111 1111 0000 0000B
反码是1111 1110 1111 1111 。
3. 程序段开始执行之前,(CS)=97F0H,(IP)=1B40H,该程序段启动执行指令的实际地址是99A40H 。
4. 异步串行通信在传送每一个数据时,传送出的第一位一定是一个低电平的传送位 。
5. 8086/8088CPU响应中断时,CPU的硬件只保护CS和IP,其余内部寄存器应由程序员编程保护 。
四、简单回答题(每小题4分,共16分)
1. 说明8086/8088CPU如何判别两个无符号数的大小。
2. 8250芯片上有3条地址线A0~A2,试问该芯片占用多少个接口地址?
3. 试叙述REP MOVSB的执行过程。
4. 动态存储器DRAM最重要的一个特点—动态的含义是什么?
五、程序阅读题(每小题5分,共20分)
1. DATA SEGMENT
AREA1 DB 100 DUP(11H)
AREA2 DB 100 DUP(22H)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC FAR
START: PUSH DX
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES.AX
CLD
MOV SI,OFFSET AREA1
MOV DI,OFFSET AREA2
MOV CX,100
REP MOVSB
RET
MAIN ENDP
CODE ENDS
END START
指出上述程序指令执行后,AREA1、AREA2两个数据块的内容。
2. 下述程序段执行后,寄存器CX,SI的内容是多少?
ARRY DW 20H DUP(5)
┆
XOR AX,AX
MOV CX,LENGTH ARRY
MOV SI, SIZE ARRY- TYPE ARRY
3. MOVDATA MACRO SN,DN,CN
MOV SI,OFFSET SN
MOV DI,OFFSET DN
MOV CX,CN
REP MOVS DN,SN
ENDM
叙述上述宏指令的的功能
4. 已知数据段DATA的段地址从40000H开始,分析伪指令后面的各种传送指令执行后各寄存器的内容。
DATA SEGMENT
V1 DB 2AH,3FH
V2 DW 2A3FH,3040H
V3 DW 20 DUP(?)
DATA ENDS
1) MOV AX,SEG V1
MOV BX,SEG V3
2) MOV AX,OFFSET V1
3) MOV CX,TYPE V3
4) MOV AH,LENGTH V2
六、编写程序题(24分)
1. 试编写一程序,把X和Y中的小者存于LIT单元,若X=Y,则把其中之一存入LIT单元。(7分)
2. 试编写一个程序段,能完成下列数学表达式的功能。X为字节变量。(7分)
-2
(X≤-2)
X= 0 (-2
2 (X≥2)
3. 已知下面数据段中数据缓存区AREA可容纳1000H个字节变量,其中0~7FFH单元已经有数据,试编写一段程序,把AREA中0~7FFH单元的数据顺序传送到AREA缓存区中的200H~09FFH单元中。(10分)
DATA SEGMENT
AREA DB 1000H DUP(?)
DATA ENDS
参考答案
一、(20分,每小题2分)
|
1、D;2 、A;3、B;4、C;5、B;6、D;7、C;8、A;9、C;10、C。
|
|
二、(10分,每小题2分)
|
1、1; 2、0; 3、4; 4、03H; 5、3。
|
三、(10分,每小题2分)
|
1、×,应为0FFFF0H; 2、×,应全为0000 0001 0000 0000B;3、√; 4、√;5、×,应为F、CS和IP
|
四、(16分,每小题4分)
|
1、 将这两个无符号数相减(或比较),若CF=0,则说明被减数大二减数小。若
CF=1,则说明减数大而被减数小。若ZF=1,二者相等。
|
2、3条地址线有23=8种编码,∴8250最多占有8个接口地址。
|
3、将DS:[SI]所决定的内存一个字节传送到ES:[DI]所决定的内存单元中,同时根据DF是0还是1,决定分别对SI、DI+1或-1。然后CX减1,若(CX)=0退出REP,否则重复传送操作,循环至(CX)=0为止。
|
4、其含义就是要对动态存储器定时进行刷新。
|
五、(20分,每小题5分)
|
1、AREA1、AREA2两个数据块内容各100(共200)个字节全变为11H。
|
2、(CX)=20H;(SI)=40H-2=3EH。
|
3、清零DF后,执行本宏指令实现以SN为首址的源数据块,到以DN为首址的目的数据块的数据传送,传送的数据块长度为CN。
|
4、
1) (AX)=4000H;(BX)=4000H
2) (AX)=0
3) (CX)=2
4) (AH)=1
|
六、(24分)
|
1、(7分)
|
解:DATA SEGMENT
X DW ?
Y DW ?
LIT DW ?
DATA ENDS
|
CODE SEGMENT
|
ASSUME CS:CODE,DS:DATA
|
START PROC FAR
|
PUSH DS
|
MOV AX,0
|
PUSH AX
|
MOV AX,DATA
|
MOV DS,AX
|
MOV AX,X
|
CMP AX,Y
|
JC STOLIT;无符号数判断,有符号数用JLE
|
MOV AX,Y
|
STOLIT: MOV LIT,AX
|
RET
|
START ENDP
|
CODE ENDS
|
END START
|
2、(7分)
|
解:
|
DATA SEGMENT
X DB -3
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AL,X
CMP AL,2
JGE SETX2
CMP AL,-2
JLE SETX_2
MOV AL,0
JMP STOX
SETX2: MOV AL,2
JMP STOX
SETX_2: MOV AL,-2
STOX: MOV X,AL
RET
START ENDP
CODE ENDS
END START
|
|
|
3、(10分)
解:
DATA SEGMENT
AREA DB 1000H DUP(?)
DATA ENDS
|
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START PROC FAR
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
STD
MOV SI,OFFSET AREA+7FFH
MOV DI,OFFSET AREA+9FFH
MOV CX,800H
REP MOVSB
RET
|
START ENDP
CODE ENDS
END START
|
一、选择题(20分,在每小题的4个备选答案中选出一个正确的答案编号填写在该题空白处,每题2分)
1. 指令ADD AL,5FH的寻址方式是 。
(A)寄存器,寄存器寻址 (B)寄存器,立即数寻址 (C)存储器,寄存器寻址 (D)寄存器,存储器寻址
2. 对AL寄存器的内容进行清零操作的为 。
(A)INC AL (B)AND AL,0 (C)NOT AL (D)XOR AL,0
3. 属于光可擦除可编程的存储器的芯片是 。
(A)SRAM (B)DRAM (C)EEPROM (D)EPROM
4. 某RAM芯片上有10条地址线A0~A9,它的容量为 。
(A)128K (B)1K (C)512 (D)1024K
5. 8086/8088CPU的SP寄存器是多少位的寄存器 。
(A)8位 (B)16位 (C)24位 (D)32位
6. 在STOSB指令执行的时候,隐含着寄存器的内容作为操作数的偏移地址,该寄存器是 。
(A)SP (B)BX (C)SI (D)DI
7. 8255工作在方式1时,下面哪种说法不正确 。
(A)A口输入有锁存能力 (B)A、B口输出有锁存能力
(C)B口输入有锁存能力 (D)B口输入无锁存能力
8. 8086/8088CPU芯片的地址线为 。
(A)16条 (B)20 条 (C) 8条 (D) 24条
9. 在DEBUG命令中,显示 DS:0000 内容的命令为 。
(A)D DS:0000 (B)E DS:0000 (C)G DS:0000 (D) T DS:0000
10. 在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器是用寄存器 。
(A)AX (B)BX (C)CX (D)DX
二、填空题(每小题2分,共10分)
1. AX与BX中数值相等,CMP AX,BX指令执行后ZF标志= 。
2. 执行LODSW后,SI的内容较该指令执行前增加2,说明DF= 。
3. 8253共占用 个端口地址。
4. 8086/8088溢出中断的向量码是 。
5. 你所知道的可用于异步串行通信接口芯片是 。
三、判断题(认为正确的在题后 打 “√”号,错误的打“×”号。并写出正确的内容,每题2分,共10分)
1. 8086/8088CPU的内存地址不能作接口地址使用 。
2. 十进制数50转换成二进制数是01010000B 。
3. 利用XOR指令可以使AX寄存器清零 。
4. 逻辑地址为97F0H:1B40H的物理实际地址是99A40H 。
5. 01111110B的反码是10000001B 。
四、简单回答题(每小题4分,共16分)
1. 说明如何把由A1.ASM,A2.ASM,A3.ASM三个模块组成的汇编语言源程序,转换成与之对应的一个“*.OBJ”文件,再进一步转换成“*.EXE”文件。
2. 动态存储器DRAM最重要的一个特点—动态的含义是什么?
3. 简单叙述异步串行通信的数据格式(可画图表示)
4. 试叙述串搜索指令REPNZ SCASB的执行过程。
五、程序阅读题(每小题5分,共20分)
1. DATA SEGMENT
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
START: PUSH DX
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AL,35H;1)此时AL中内容?
ADD AL,45H;2)此时AL中内容?
DAA ;3)此时AL中内容?
MOV SUM,AL
RET
MAIN ENDP
CODE ENDS
END START
指出上述程序指令执行后,SUM字节单元的内容。
2. 设BX指向数据段X1字节内存单元,X2是X1后续字节单元,BIG也是一个节数单元。
MOV AL,[BX] ;1)此时AL中内容?
INC BX ;2)此时BX指向何字节单元?
CMP AL,[BX]
JAE BIGER
EXCH:
MOV AL,[BX] ;3)如执行到此时,X1与X2那个大?
BIGER: MOV BIG,AL ;
上述程序执行后BIG中是什么数?
3. 已知数据段DATA的段地址从10000H开始,分析伪指令后面的各种传送指令执行后各寄存器的内容。
DATA SEGMENT
V1 DW 2A3FH,3F40H
V2 DB 2AH,30H
V3 DW 4 DUP(?)
DATA ENDS
1) MOV AX,SEG V1
MOV BX,SEG V3
2) LEA AX, V1
3) MOV CX,TYPE V3
4) MOV AH,SIZE V2
4. 下述程序执行后DI,SI的内容是多少?
DATA SEGMENT
X0 DB 20H DUP(?)
X1 DB 20H DUP(?)
DATA ENDS
┋
MOV SI,OFFSET X0
LEA DI,X1
六、编写程序题(24分)
1 试编写一程序,完成1+2+3+…+100的运算,运算结果存储在SUM字内存单元。(7分)
2 试编写一个程序,其功能是将一个字数组ARRAY中的正数分离出来存储在PLUS开始的单元中。(10分)
3 已知下面数据段
DATA SEGMENT
AREA0 DB 1000H DUP(?)
AREA1 DB 1000H DUP(?)
DATA ENDS
编写程序,把AREA0中字节单元清零,把AREA1中的字节单元设置成34H。(7分)
参考答案
一、(20分,每小题2分)
|
1、B;2 、B;3、D;4、B;5、B;6、D;7、D;8、B;9、A;10、C。
|
|
二、(10分,每小题2分)
|
1、1; 2、0; 3、4; 4、04H; 5、8250。
|
三、(10分,每小题2分)
|
1、×,应为可以;2、×,应全为0011 0010B;3、√;4、√;5、×,与原码相同
|
四、(16分,每小题4分)
|
1、先用MASM对三个源文件分别汇编,形成A1.OBJ,A2.OBJ和A3.OBJ 然后运行LINK命令,并对(*.OBJ)文件一栏键入A1.OBJ +A2.OBJ+A3.OBJ ,生成一个*.EXE文件。
|
2、其含义就是要对动态存储器定时进行刷新。
|
3、 ┝─────第 n 个字符──────┨ ┝─第n+1字符
───┐ ┌─────────────────────────────┐ ┌─────
1 │1 │0 │1/0│1/0│1/0│1/0│1/0│1/0│1/0│1/0 │ 1 1 1 1 │0 │1/0│ 1/0
└─┴───────────────────┘ └─┴─────
空闲位 起始 信息位 校验 停止 空闲 起始 信息位
|
4、将ES:[DI]所决定的内存一个字节与AL中的内容比较,同时根据DF是0还是1,决定分别对DI+1或-1。然后CX减1,若(CX)=0或ZF=1结束循环,否则重复传送搜索,循环至(CX)=0为止。
|
五、(20分,每小题5分)
|
1、1)35H , 2)7AH,3)80H;只要答对SUM中为80H满分。结果不对1)、2)、3)每步可得1分
|
2、1)X1,2)X2处,3)X2大,只要答对SUM中存储X1与X2中较大的数值即可满分。结果不对1)、2)、3)每步可得1分
|
3、
1) (AX)=1000H;(BX)=1000H
2) (AX)=0
3) (CX)=2
4) (AH)=1
|
4、(SI)=0,(DI)=20H
|
六、(24分)
|
1、(7分)
|
解:DATA SEGMENT
SUM DW ?
DATA ENDS
|
CODE SEGMENT
|
ASSUME CS:CODE,DS:DATA
|
START: MOV AX,DATA
|
MOV DS,A X
|
MOV AX,0
|
MOV CX,100
|
AGAIN: ADD AX,CX
|
LOOP AGAIN
|
MOV AH,4CH
|
INT 21H
|
CODE ENDS
|
END START
|
2、(10分)
|
解:
|
DATA SEGMENT
ARRAY DW 8 DUP(1FH,-12)
COUNT EQU $-ARRAY
PLUS DW 8 DUP(?,?)
DATA ENDS
;--------------------------------
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC FAR
START: PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX
;--------------------------------
MOV SI,OFFSET ARRAY
MOV DI,OFFSET PLUS
MOV CX,COUNT
AGAIN: LODSW
TEST AX,8000H
JNZ TENDS
PLS: STOSW
TENDS: LOOP AGAIN
RET
MAIN ENDP
CODE ENDS
END START
|
3、(7分)
DATA SEGMENT
AREA0 DB 1000H DUP(?)
AREA1 DB 1000H DUP(?)
DATA ENDS
解:
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
MAIN PROC FAR
START: PUSH DS
XOR AX,AX
PUSH AX
MOV DS,AX
MOV ES,AX
;--------------------------------
MOV DI,OFFSET ARRAY0
MOV CX,1000H
MOV AL,0
AGAIN: STOSB
LOOP AGAIN
MOV AL,34H
MOV CX,1000H
AGAIN1: STOSB
LOOP AGAIN1
RET
MAIN ENDP
CODE ENDS
END START
|
一、选择题(本题共10小题,每小题2分,共20分)
1. 字符“A”的ASCII代码是 。
(A)31H (B)0DH (C)20H (D)41H
2. 对AX寄存器内容进行减1操作的指令为 。
(A)DEC
AX (B)OR AX,0 (C)XOR AX,AX (D)NOT
AX
3. 静态存储器芯片符号是 。
(A)SRAM (B)DRAM (C)EEPROM (D)EPROM
4. 某RAM芯片上有10条地址线A0~A9,它的容量为 。
(A)128K (B)1024K (C) 1024 (D)512
5. 8086/8088CPU的DS寄存器是多少位的寄存器 。
(A)16位 (B)8位 (C)24位 (D)32位
6. 在DEBUG命令中,显示 DS:0000 内容的命令为 。
(A)D DS:0000 (B)E DS:0000 (C)G DS:0000 (D) T DS:0000
7. 关于8255工作方式,下面哪种说法不正确 。
(A)A、B口均可在方式0方式下工作 (B)A、B口均可在方式1方式下工作
(C)只有A口可在方式2方式下工作 (D)A、B口均可在方式2方式下工作
8. 在DEBUG环境中,FLAGS中的状态标志CF为1时用符号 表示。
(A)NC (B)ZR (C)CY (D)PO
9. 指令MOV AL,5FH的寻址方式是 。
(A)寄存器,立即数寻址 (B)寄存器,寄存器寻址
(C)存储器,立即数寻址 (D)寄存器,存储器寻址
10. 在LOOP指令执行的时候,隐含着对计数器减1的操作,该计数器使用寄存器 。
(A)AX (B)BX (C)CX (D)DX
二、填空(本题共5小题,每小题2分,共10分)
1、 AX中数值为8000H BX中数值为8001H,SUB AX,BX指令执行后CF标志= 。
2、 执行LODSB后,SI的内容较该指令执行前增加1,说明DF= 。
3、 8255共占用 个端口地址。
4、 8086/8088 NMI的中断类型号是 。
5、 你所知道的可编程定时器/计数器芯片是 。
三、判断题(认为正确的在题后 打 “√”号,错误的打“×”号。并写出正确的内容,每题2分,共10分)
1. 8086/8088CPU的内存地址能作接口地址使用 。
2. 十进制数40转换成二进制数是01000000B 。
3. 利用CMP类指令可以使AX寄存器清零 。
4. 动态存储器DRAM最重要的一个特点—动态的含义是不需要刷新 。
5. 01111111B的反码是10000000B 。
四、简单回答题(每小题3分,共12分)
1. 说明如何把由A.ASM,B.ASM二个模块组成的汇编语言源程序,转换成与之对应的一个“*.OBJ”文件,再进一步转换成“C.EXE”文件。
2. 逻辑地址为97F0H:1B40H的物理实际地址是是什么?
3. 简单叙述异步串行通信的数据格式(可画图表示)
4. 试叙述串搜索指令REPZ SCASB的执行过程。
五、指令、程序阅读题(共20分)
1.已知 8086 中一些寄存器的内容和一些存储单元的内容如图五-1所示,试指出下列每条指令执行后,AX中的内容(即(AX)=?)。 (8分)
(1)MOV AX,2010H
(2) MOV AX,BX
(3) MOV AX,[1200H]
(4) MOV AX,[BX]
(5) MOV AX,[BX+1100H]
(6) MOV AX,[BX+SI+1000H]
(7) MOV AX,SI
(8) LODSW
图五-1 图五-2
2.已知存储器数据段中的数据如图五-2所示。下列程序段的运行结果是什么? (6分)
MOV AX,NUM1;AX=
ADD AX,NUM2;AX=
MOV SUM,AX ;SUM=
MOV AX,NUM1+2;AX=
ADC AX,NUM2+2;AX=
MOV SUM+2,AX ;[SUM+2]=
3.有如下程序段,分析“{”所括指令执行后,指令中对应寄存器内容。 (6分)
DATA SEGMENT
NUM1 DW 0004H
NUM2 DW 5678H
NUM3 DW 78A5H
COUNT EQU $-NUM1
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC
MOV AX,DATA
MOV DS,AX
MOV BX,NUM1 ;BX=
LEA SI,NUM1 ;SI=
MOV AX,NUM2 ;AX=
MOV DX,OFFSET NUM2 ;DX=
MOV CX,COUNT ;CX=
MOV AX,[BX] ;AX=
MAIN ENDP
CODE ENDS
六、编写程序题(28分)
1.试编写程序,完成运算Y=A+B-C。 (8分)
DATA SEGMENT
A DW 2450H
B DW 5421H
C DW 1120H
Y DW ?
DATA ENDS
2.试编写一个程序段,能完成下列数学表达式的功能。X、Y为无符号字节变量。(9分)
46(X>45)
Y= 0(X=45)
44(X<45)
DATA SEGMENT
X DB 68H
Y DB ?
DATA ENDS
3.试编写一程序计算求级数12+32+52+……的前几项和刚大于600的项数(11分)
参考答案
一、(20分,每小题2分)
|
1、D;2 、A;3、A;4、C;5、A;6、A;7、D;8、C;9、A;10、C。
|
|
二、(10分,每小题2分)
|
1、1; 2、0; 3、4; 4、2; 5、8253。
|
三、(10分,每小题2分)
|
1、√;2、×,00101000B;3、×,不能;4、×,需要刷新;5、×,01111111B
|
四、(12分,每小题3分)
|
1、先用MASM对源文件分别汇编,形成A.OBJ、B.OBJ 然后运行LINK命令,并对(*.OBJ)文件一栏键入A.OBJ+B.OBJ,生成一个C.EXE文件。
|
2、99A40H
|
3、
4、将AL 与ES:[DI]所决定的字字节内容传进行比较,同时根据DF是0还是1,决定DI及+1或-1,同时CX内容减1;如果ZF=1或CX=0结束,否则重复操作。
|
五、(20分)每个答案1分,如果字节换算成字顺序错去一半分
|
1、2010H、0100H、4C2AH、3412H、4C2AH、065B7H、0102H、7856H
|
2、8148H、23A0H、23A0H、2816H、0AC69H、0AC69H
|
3、0004H、0000H、5678H、0002H、0006H、78A5H
|
六(28分)
|
1(8分)
|
解:
|
CODE SEGMENT
|
ASSUME CS:CODE,DS:DATA
|
START PROC:
MOV AX,DATA
|
MOV DS,A X
|
MOV AX,A
ADD AX,B
|
SUB AX,C
|
MOV Y,AX
|
MOV AH,4CH
|
INT 21H
START ENDP
|
CODE ENDS
|
END START
|
|
|
2、(9分)
|
解:
|
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
START: PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
;--------------------------------
MOV AX,X
CMP AX,45
JNC TZR
MOV AX,44
JMP SAVY
TZR: JNZ SAV46
XOR AX,AX
JMP SAVY
SAV46: MOV AX,46
SAVY: MOV Y,AX
RET
MAIN ENDP
CODE ENDS
END START
|
3、(11分)
解:
|
DATA SEGMENT
N DB ?
DATA ENDS
;------------------------------
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
;--------------------------------
MOV CL,-2
MOV BX,0
AGAIN: ADD CL,2
MOV AL,CL
MUL CL
ADD BX,AX
CMP BX,600
JBE AGAIN
INC CL
SHR CL
MOV N,CL
MOV AL,CL
RET
;----------------------------------
MAIN ENDP
CODE ENDS
END MAIN
|
|
.
加载中,请稍候......