MOV AH, 4CH INT 21H END START 回答下列问题:
(1) 该程序实现什么操作?
(2) 程序执行后,CC+3单元的内容是什么? (3) 程序执行后,BX所指单元的内容是什么?
(4) 程序中,指令AND AX, AX的作用是什么? 能用其它指令替代吗? (5) 程序中,指令MOV AL, 0能用XOR AL, AL替代吗? 为什么? (1) AA与BB两个4字节数求和 (2) 0B7H (3) 1
(4) 设臵CF=0。可用CLC替代。 (5) 不能。逻辑运算会将CF清零。 14. 阅读程序 DATA SEGMENT NUM WORD 8096H RES BYTE ? DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV CX, 16 MOV AX, NUM LOP1: AND AX, AX JZ DONE SHL AX, 1 JNC NEXT INC CH NEXT: DEC CL JNZ LOP1
DONE: MOV RES, CH MOV AH, 4CH INT 21H CODE ENDS END START 回答下列问题:
(1) 该程序的功能是什么?
(2) 程序运行结束时,RES单元的内容是什么? (3) 指令AND AX, AX程序中的作用是什么? (1) 统计NUM单元字数据中1的位数 (2) 5
(3) 判断AX是否为零,判断是否提前结束循环(统计AX中1的位数)。 20. 阅读程序,回答问题: (1) 该子程序功能是什么?
(2) 子程序的入口参数、出口参数分别是什么? SUB2 PROC NEAR/FAR PUSH CX PUSH AX MOV CX, 16
BIN1: ROL BX, 1 MOV AL, BL AND AL, 1 ADD AL, 30H
CALL SUBOUT ;调用显示子程,入口参数AL LOOP BIN1 POP AX POP CX RET SUB2 ENDP
(1) 将BX的各位在显示器上输出。
(2) 入口参数为BX,出口参数为显示器上的输出。 第230~232页的第7、11、15、16、17、21、22题。
7. 编程实现利用查表法求73的平方,假设从SQTAB为首地址的内存中放有0~100的平方 值,结果送入RES字单元中。 .MODEL SMALL .DATA
SQTAB WORD 0,1,4,9, …,10000 RES WORD ? .STACK 64H .CODE
START: MOV AX, @DATA MOV DS,AX
MOV BX, OFFSET SQTAB MOV SI, 146 MOV AX, [BX+SI] MOV RES, AX MOV AH,4CH INT 21H END START
11. 学生成绩存放在SCORE单元(60~100分),试用地址表法或转移表法实现:100分,屏幕显示“A+”,90~99分显示“A”,80~89分显示“A-”,70~79分显示“B+”,60~69分显示“B”。 .MODEL SMALL .DATA
SCORE BYTE 60 AP BYTE 'A+','$' A BYTE 'A','$' AM BYTE 'A-','$' BPL BYTE 'B+','$' B BYTE 'B','$'
J_TAB WORD L1,L2,L3,L4,L5 .CODE
START: MOV AX, @DATA MOV DS, AX XOR AH,AH MOV AL,SCORE SUB AL,60 MOV BL,10 DIV BL MOV BL,AL XOR BH,BH SHL BX,1
JMP J_TAB[BX] L1: MOV DX,OFFSET B MOV AH,9 INT 21H JMP NEXT
L2: MOV DX,OFFSET BPL MOV AH,9 INT 21H JMP NEXT
L3: MOV DX,OFFSET AM MOV AH,9 INT 21H JMP NEXT
L4: MOV DX,OFFSET A MOV AH,9 INT 21H JMP NEXT
L5: MOV DX,OFFSET AP MOV AH,9 INT 21H JMP NEXT
NEXT: MOV AH, 4CH INT 21H END START
15. 100个学生某科考试成绩(0~100分)存放在以RECORD为首的内存单元中,统计0~59分、60~69分、70~79分、80~89分、90~99分、100分的人数;并计算全班的平均成绩,保留整数位,结果四舍五入。 .MODEL SMALL .DATA
SCORE BYTE 0,45,50,60,…100 MEAN BYTE ? S100 BYTE 0 S90 BYTE 0 S80 BYTE 0 S70 BYTE 0 S60 BYTE 0 S59 BYTE 0 .STACK 100H .CODE
START: MOV AX, @DATA MOV DS,AX MOV CX, 100 LEA SI, SCORE XOR AX, AX XOR BH, BH LOP: MOV BL, [SI] CMP BL, 100 JB N90 INC S100 JMP NEXT N90: CMP BL, 90 JB N80
INC S90 JMP NEXT N80: CMP BL, 80 JB N70 INC S80 JMP NEXT N70: CMP BL, 70 JB N60 INC S70 JMP NEXT N60: CMP BL, 60 JB N59 INC S60 JMP NEXT N59: INC S59 NEXT: ADD AX,BX INC SI LOOP LOP MOV CX, 100 XOR DX, DX DIV CX SHL DX, 1 CMP DX, 100 JB NXT2 INC AX
NXT2: MOV MEAN, AL MOV AH, 4CH INT 21H END START
16. 假设6位由字母或数字构成的密码(ASCII码)存储在以PWRD为首地址的内存单元中。 编程实现:首先显示“Please enter the password:”, 然后等待键盘输入字符串,若与存储的密码相符,显示欢迎信息“Welcome !”;否则,再次提示输入,总共有三次输入机会,每次输入错误后,显示出错信息“Wrong password, ?? tries left.”, ??用具体数字替代。 三次都输入错误,显示“ACCESS DENIED!”并结束程序。 DISP MACRO STR MOV AH, 9
MOV DX, OFFSET STR INT 21H ENDM DATA SEGMENT PWRD BYTE '123A56' IN_BUF BYTE 7,? INWD BYTE 7 DUP(?) CR EQU 0DH LF EQU 0AH
ST1 BYTE 'Please enter the password:',CR,LF,'$' ST2 BYTE 'Welcome !',CR,LF,'$' ST3 BYTE 'Wrong password, ' CONT BYTE ?
BYTE ' tries left.',CR,LF,'$' ST4 BYTE 'ACCESS DENIED!',CR,LF,'$' DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA, ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV BL,3 CLD DISP ST1
AGAIN: MOV AH,0AH MOV DX, OFFSET IN_BUF INT 21H
MOV SI, OFFSET PWRD MOV DI, OFFSET INWD MOV CX,6 REPE CMPSB JNZ NEXT DISP ST2 JMP EXIT NEXT: DEC BL JNZ NEXT2 DISP ST4 JMP EXIT NEXT2: OR BL,30H MOV CONT,BL DISP ST3 AND BL,0FH JMP AGAIN EXIT: MOV AH,4CH INT 21H CODE ENDS END START
17. 字节数组DATA1中,存放有10个不等的符号数,编程实现求最大值、最小值,以及两者存放单元的偏移地址。 .MODEL SMALL .DATA
DATA1 BYTE -1,2,4,5,-77,8,9,10,-11,-10 MAX BYTE ? MAXADD WORD ? MIN BYTE ? MINADD WORD ? .CODE
START: MOV AX,@DATA MOV DS,AX LEA BX, DATA1 MOV CX,9 MOV SI,BX MOV DI,BX MOV AL,DATA1 MOV AH,DATA1 INC BX
LOP: MOV DL,[BX] CMP AL,DL JLE NEXT1
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2011汇编复习 大题部分(4)在线全文阅读。
相关推荐: