课外 综合练习(3)

2025-11-24

(1) (AX)=0F05FH, (SF)=1, (ZF)=0, (OF)=0, (CF)=1 (2) (SF)=1, (ZF)=0, (OF)=1, (CF)=1 (3) (AX)=0240H, (OF)=1, (CF)=1 (4) (AX)=0906H, (SF)=0, (ZF)=0 (5) (AX)=20ACH

(6) (AX)=0103H, (CF)=0

(7) (AX)=0DF87H, (CF)=0, (OF)=0, (SF)=1, (ZF)=0 (8) (23000H)~(23004H)=60H, 不影响标志位 (9) (IP)=0A006H, 不影响标志位

(10) (AX)=00B0H, (25060)=2060H, 不影响标志位

第四部分 汇编语言程序设计

1. 试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

答案: abc: mov ah,1 int 21h cmp al,’a’ jb stop cmp al,’z’ ja stop sub al,20h mov dl,al mov ah,2 int 21h jmp abc stop: ret

2. 编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示“MATCH”,若不同则显示“NO MATCH”。

答案:

datarea segment string1 db ‘asfioa’ string2 db ‘xcviyoaf’ mess1 db ‘MATCH’,’$’ mess2 db ‘NO MATCH’,’$’ datarea ends prognam segment main proc far assume cs:prognam,ds:datarea start:

push ds sub ax,ax push ax mov ax,datarea mov ds,ax mov es,ax begin: mov cx, string2-string1 mov bx, mess1-string2 cmp bx,cx jnz dispno

lea dx,addr lea si,string1 lea di,string2 repe cmpsb

jne dispno mov ah,9 lea dx,mess1

int 21h ret dispno: mov ah, 9 lea dx, mess2 int 21h

ret main endp prognam ends end start

3. 试编写程序,要求从键盘输入3个16进制数,并根据对3个数的比较显示如下信息: (1)如果3个数都不相等则显示0; (2)如果3个数中有2个数相等则显示2; (3)如果3个数都相等则显示3。

答案: data segment array dw 3 dup(?) data ends code segment main proc far assume cs:code,ds:data start:

push ds sub ax,ax push ax mov ax,data mov ds,ax mov cx,3 lea si,array begin: push cx mov cl,4 mov di,4 mov dl, ‘ ‘ mov ah,02 int 21h mov dx,0 input: mov ah,01

int 21h and al,0fh shl dx,cl or dl,al dec di jne input mov [si],dx add si,2 pop cx loop begin comp: lea si,array mov dl,0 mov ax,[si]

mov bx,[si+2] cmp ax,bx jne next1 add dl,2 next1: cmp [si+4],ax jne next2 add dx,2 next2: cmp [si+4],bx jne num add dl,2 num: cmp dx,3 jl disp mov dl,3 disp: mov ah,2 add dl,30h int 21h ret

main endp code ends end start

4. 已知整数变量A和B,试编写完成下述操作的程序:

(1)若两个数中有一个是奇数,则将该奇数存入A中,偶数存入B中; (2)若两个数均为奇数,则两数分别加1,并存回原变量; (3)若两个数均为偶数,则两变量不变。 答案: dseg segment a dw ? b dw ? dseg ends cseg segment mainproc far

assume cs:cseg,ds:dseg start:push ds sub ax,ax push ax mov ax,dseg mov ds,ax begin: mov ax,a mov bx,b xor ax,bx test ax,0001 jz class test bx,0001 jz exit xchg bx,a mov b,bx jmp exit class: test bx,0001 jz exit inc b inc a exit: ret

mainendp cseg ends end start

5. 把0~10010之间的30个数,存入首地址为GRAD的字数组中,GRAD+i表示学号为i+1的学生成绩。另一个数组RANK是30个学生的名次表,其中RANK+I的内容是学号为i+1的学生的名次。试编写程序,根据GRAD中的学生成绩,将排列的名次填入RANK数组中(提示:一个学生的名次等于成绩高于这个学生的人数加1)。

答案: dseg segment grade dw 30 dup(?) rank dw 30 dup(?) dseg ends cseg segment mainproc far

assume cs:cseg, ds:dseg, es:dseg start:push ds sub ax,ax push ax mov ax,dseg mov ds,ax mov es,ax begin: mov di,0 mov cx,30 loop1: push cx mov cx,30 mov si,0 mov ax,grade[di] mov dx,0 loop2: cmp grade[si],ax jbe go_on inc dx go_on: add si,2 loop loop2 pop cx inc dx mov rank[di],dx sdd di,2 loop loop1 ret mainendp cseg ends end start

6. 分析下列程序的功能,写出堆栈最满时各单元的地址及内容。

SSEG SEGMENT ‘STACK’ AT 1000H ; 堆栈的段地址为1000H DW 128 DUP(?) TOS LABEL WORD SSEG ENDS

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DSEG SEGMENT DW 32 DUP(?) DSEG ENDS

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CSEG SEGMENT MAIN PROC FAR ASSUME CS:CSEG, DS:DSEG,SS:SSEG

START: MOV AX,SSEG MOV SS,AX MOV AX,DSEG MOV DS,AX MOV AX,4321H CALL HTOA RETN: MOV AH,4CH INT 21H MAIN ENDP

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HTOA PROC NEAR CMP AX,15 JLE B1 PUSH AX PUSH BP MOV BP,SP MOV BX,[BP+2] AND BX,0FH MOV [BP+2],BX POP BP MOV CL,4 SHR AX,CL CALL HTOA B1: POP AX B2: ADD AL,30H JL PRT ADD AL,07 PRT: MOV DL,AL MOV AH,2 INT 21H RET HTOA ENDP CSEG ENDS

; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END START

答案:

1000:0F2H 1000:0F4H 1000:0F6H 1000:0F8H 1000:0FAH 1000:0FCH 1000:0FEH 1000:100H

B1 3 B1 2 B1 1 RETN

7. 写出分配给下列中断类型号在中断向量表中的物理地址。

(1) INT 12H (2) INT 8 答案:

(1) 00048h (2) 00020h

8. 试编写程序,它轮流测试两个设备的状态寄存器,只要一个状态寄存器的第0位为1,则与其相应的设备就输入一个字符;如果其中任一状态寄存器的第3位为1,则整个输入过


课外 综合练习(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:杭州市区日常土地测绘成果检查验收规定及质量评定标准

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219