《汇编语言》各章习题答案.pdf

上传人:赵** 文档编号:69174596 上传时间:2022-12-31 格式:PDF 页数:26 大小:857.55KB
返回 下载 相关 举报
《汇编语言》各章习题答案.pdf_第1页
第1页 / 共26页
《汇编语言》各章习题答案.pdf_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《《汇编语言》各章习题答案.pdf》由会员分享,可在线阅读,更多相关《《汇编语言》各章习题答案.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!汇编语言各章习题答案 习题一答案:1.1 无符号数:11010011=211=D3H,01110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH 带符号数:11010011=-45=D3H,01110111=+119=77H,10000011=-125=83H,00101111=+47=2FH,10101010=-86=AAH 1.2 5E8AH,0BE6H,3DEH,4940H 1.3 00011101+00110101=01

2、010010=52H=82 01001001+11101000=00110001=31H=49 10111110+01010010=00010000=10H=16 10011010+11110001=10001011=8BH=-117 1.4 00101001+01010011=01111100+00000110=10000010=82H=82 0111001100100100=0100111100000110=01001001=49H=49 01100110+00011000=01111110+00000110=10000100=84H=84 0000000100110010+0111010

3、1=0000000110100111+00000110=0000001000000111=0207H=207 1.5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H 1.6 无符号数:065535,0000HFFFFH;带符号数:-32768+32767,8000H7FFFH 1.7 (1)38H 等于十进制数 56,是十进制数 56 的补码,数字 8 的 ASCII 码,十进制数 38 的压缩 BCD 码 (2)FFH 等于十进制数-1,是带符号数-1 的补码,无符号数为 255 (3)5AH 等于十进制数 90,是十进制数 90 的补码,大写字母 Z 的

4、 ASCII 码 (4)0DH 等于十进制数 13,是十进制数 13 的补码,回车符的 ASCII 码 1.8(1)108=01101100B=6CH,补码 01101100B,压缩 BCD 码 0000000100001000,ASCII 码313038H (2)46=00101110B=2EH,补码 00101110B,压缩 BCD 码 01000110,ASCII 码 3436H (3)15=11110001B=F1H,补码 11110001B,ASCII 码 2D3135H (4)254=0000000011111110B=00FEH,补 码0000000011111110B,压 缩B

5、CD码0000001001010100,ASCII 码 323534H 1.9(1)56+63=01110111B,CF=0,SF=0,ZF=0,OF=0 (2)83-45=00100110B,CF=0,SF=0,ZF=0,OF=0 (3)-74+29=11010011B,CF=0,SF=1,ZF=0,OF=0 (4)-9237=01111111B,CF=1,SF=0,ZF=0,OF=1 1.10 回车、换行、响铃、ESC 键、空格键、P、p 习题二答案:2.9 最少划分为 16 个逻辑段,最多划分为 65536 个逻辑段(每段 16 个字节)2.10 CS:IP,DS:BX、SI、DI,ES

6、:BX、SI、DI,SS:SP、BP 2.11 字节单元保存 8 位数,字单元保存 16 位数。根据源操作数的属性确定要访问的是字节单元还是字单元。2.12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!减少 CPU 的访存次数。2.13 首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H 2.16 (1)物理地址=27679H (2)物理地址=20F92H (3)物理地址=20F92H (2)和(3)的物理地址是一样的。说明逻辑地址不

7、唯一,多个逻辑地址可对应到同一个物理单元上。2.17 代码段 CS:IP 的物理地址=55A84H 堆栈段 SS:SP 的物理地址=4DB65H 数据段 DS:BX 的物理地址=17678H 附加段 ES:DI 的物理地址=2BA41H 2.18 当前栈指针所指单元的物理地址是 1522CH。堆栈区中还能保存 254 个字。2.19 执行 E 200 2.20 执行 U 100 2.21 执行 R CX,然后输入 100 2.22 执行 E DS:0 a b c d 习题三答案:3.3 MOV AX,BX 源操作数为寄存器寻址,EA 无,物理地址 无 MOV AX,1290H 立即寻址,EA

8、无,物理地址 无 MOV AX,BX 寄存器间接寻址,EA=1290H,物理地址=2FBB0H MOV AX,DS:1290H 直接寻址,EA=1290H,物理地址=2FBB0H MOV AX,BP 寄存器间接寻址,EA=6756H,物理地址=26A56H MOV DIBX,AX 目的操作数为基址变址寻址,EA=3C06H,物理地址=32526H MOV ES:SI,AX 寄存器间接寻址,EA=348AH,物理地址=50CAAH 3.7 MOV AX,CX 错。CX 不能为间址寄存器 MOV AL,1200H 错。立即数超出 8 位寄存器范围 MOV AL,BX 错。两个操作数不匹配 MOV

9、SIDI,AX 错。两个变址寄存器不能在一起 MOV ES:DX,CX 错。DX 不能为间址寄存器 MOV AX,VALUE 错。AX 不能为间址寄存器 MOV COUNT,SI 错。两个操作数不能都是存储单元 3.8 (1)MOV AX,BX (2)MOV CL,15 (3)ADD AX,BX (4)MOV BX+SI,AL (5)MOV AX,VALUESI(6)SUB AX,DS:2000H 3.9 (1)ADD AX,X+3 (2)MOV BX,3 (3)MOV BX,3 MOV Y,AX ADD AX,XBX MOV SI,OFFSET X MOV Y,AX ADD AX,BX+SI

10、 MOV Y,AX 3.10 立即寻址方式中操作数(立即数)和指令一起存放在代码段中。习题四答案:4.10 (1)DATA SEGMENT X DW 0 Y DW 0 DATA ENDS 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!(2)STRING DB Computer (3)COUNT DB 100 DUP(?)(4)PI EQU 3.14 (5)VALUE LABEL BYTE 4.11 (1)对。(2)错。260 超出了字节范围。(3)错。X3 是字节型,1234H 是字型,不匹配。(4)对。(5)错。缺少 DUP。(6)对。4.12

11、 (1)AL=3。(2)AX=2103H。(3)DX=TABLE 的偏移地址。(4)CL=33H (5)BX=TABLE 的段地址。(6)BX=1。(7)DX=TABLE 的偏移地址。4.13 MOV DX,2012H MOV AX,5D68H MOV CX,1003H MOV BX,49A6H ADD AX,BX (SUB AX,BX)ADC DX,CX (SBB DX,CX)4.14 SUB AX,CX SBB DX,0 4.15 MOV AX,extra MOV ES,AX 4.16 (1)MOV AL,16 ADD AL,X MOV BL,5 IMUL BL MOV Z,AX(2)MO

12、V BL,4 MOV AL,X IDIV BL SUB AL,Y MOV Z,AX(3)MOV AL,X MOV BL,8 IMUL BL MOV DX,AX MOV AH,0 MOV AL,Y MOV BL,16 IDIV BL CBW ADD DX,AX MOV AH,0 MOV AL,W IMUL AL SUB DX,AX MOV Z,DX 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!(4)MOV AL,X ADD AL,Y MOV BL,X SUB BL,Y MOV AH,0 IMUL BL MOV Z,AX MOV AL,X IDIV

13、 Y CBW SUB Z,AX 4.17 Z=(5+22-15)*14=168 4.18 从伪指令 END START 处获知程序从 START 标号开始。4.19 (1)减法:(2)加法:MOV AX,8576H MOV AX,8576H MOV BX,9988H MOV BX,9988H SUB AX,BX ADD AX,BX 结果:AX=EBEEH 结果:AX=1EFEH CF=1,OF=0,ZF=0,SF=1 CF=1,OF=1,ZF=0,SF=0 4.21 (1)MOV AL,56H MOV BL,34H ADD AL,BL DAA MOV Y1,AL (2)MOV AX,128H

14、MOV BX,35H SUB AX,BX DAS MOV Y2,AL (3)MOV AL,68H MOV BL,23H ADD AL,BL MOV BL,45H SUB AL,BL DAS MOV Y3,AL 4.22 (1)MOV AX,0708H MOV BX,0406H ADD AL,BL ADD AH,BH ;不用带进位加 AAA ;加法调整,含进位调整 MOV BX,AX XCHG AH,AL;高 4 位调整 AAA 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!MOV BH,AL MOV Z1,BX ;保存十位、各位,百位在 CF 中

15、(2)MOV AX,0905H MOV BX,0207H SUB AL,BL SUB AH,BH ;不用带借位减 AAS ;减法调整 MOV Z2,AX(3)MOV AX,0102H MOV BX,0006H MUL BX ;乘法先不用调整 MOV BX,0303H SUB AX,BX AAS ;减法调整 MOV Z3,AX (4)MOV AX,0704H MOV BX,0108H ADD AL,BL ADD AH,BH AAA ;加法调整 MOV BL,6 AAD ;除法调整 DIV BL MOV BH,AH ;余数保存在 BH AND AX,000FH AAA ;商调整 MOV Z4,AX

16、 ;保存商 4.23 编程序。从键盘输入一个数字,去掉 ASCII 码后保存到 BUFF 单元。.model small.data buff db?.code start:mov ax,data mov ds,ax mov ah,1 ;键盘输入 int 21h sub al,30h ;去掉 ASCII 码 mov buff,al mov ah,4ch int 21h end start 4.24 编程序。将键盘输入的小写字母变为大写字母显示在屏幕上。.model small 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!.code start:m

17、ov ah,1 ;键盘输入 int 21h sub al,20h ;变为大写 mov dl,al mov ah,2 int 21h mov ah,4ch int 21h end start 4.25 X 和 Y 都是字节型数据,编写将两数相加的结果显示出来的程序段。.model small.data x db 12h y db 34h.code start:mov ax,data mov ds,ax mov al,x add al,y ;结果为 46H mov ah,al;AH=46H and al,0fh ;AL=06H mov cl,4 rol ah,cl ;AH=64H and ah,0

18、fh ;AH=04H add ax,3030h ;AX=3436H mov bx,ax mov dl,bh ;显示 4 mov ah,2 int 21h mov dl,bl ;显示 6 int 21h mov ah,4ch int 21h end start 4.26 编写程序,建立一个 09 的平方根表,查表可得某数的平方根。data segment x db 0.000,1.000,1.414,1.732,2.000 db 2.236,2.449,2.646,2.828,3.000 ;建立字符表 y db 5 dup(?);存放查到平方根 u db 3 ;要查的数 data ends 欢迎

19、您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov al,u ;要查的数 mov cl,5 mul cl ;u*5=15(号单元开始)mov ah,0 mov bx,ax ;地址保存到 bx mov si,0 let1:mov al,xbx ;取出平方根数字 mov ysi,al ;存入 y inc si inc bx loop let1 ;循环取出 5 次 mov ah,4ch int 21h code ends end

20、 start 4.27 编写查表程序。建立一个班级姓名表,给出学号,可显示出其姓名。.model small.data x1 db zhang yan$;姓名为 10 个字符宽度 x2 db li li$x3 db wang lan$x4 db zhao xue$x5 db li jiang$u db 3 ;要查的学号.code start:mov ax,data mov ds,ax mov al,u ;给出学号 mov cl,10 mul cl ;u*10=30(号单元开始)mov ah,0 mov dx,ax ;地址保存到 dx mov ah,9 ;9 号功能显示字符串 int 21h m

21、ov ah,4ch int 21h end start 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!4.28 编程实现公式计算 Z=X/4+16Y。.model small.data x db 4 y db 6 z db?.code start:mov ax,data mov ds,ax mov al,x ;mov cl,2 sar al,cl ;X/4 mov cl,4 mov bl,y sal bl,cl ;16Y add al,bl ;X/4+16Y mov z,al mov ah,4ch int 21h end start 4.29 编

22、写程序段,将 AL 中的数乘以 6,与 CL 相减后再除以 3;把商保存到 Y 单元,余数保存到 Y+1 单元。.model small.data y db?,?.code start:mov ax,data mov ds,ax mov al,3 ;设 al=3 mov cl,6 mul cl ;al*6 mov cl,4 ;设 cl=4 sub al,cl ;相减 mov bl,3 idiv bl ;/3 mov y,al ;商 mov y+1,ah ;余数 mov ah,4ch int 21h end start 习题五答案:欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!

23、我们将竭诚为您提供优质的文档!欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!Z DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,X CMP AL,0 JL SS1 MOV CL,2 SAL AL,CL MOV BL,Y MOV CL,4 SAR BL,CL SUB AL,BL JMP OUT1 SS1:NEG AL OUT1:MOV Z,AL MOV AH,4CH INT 21H CODE ENDS END START 5.29

24、 字数组 M 中有 10 个数据,分类统计其中正数、负数、0 的个数,分别存入 POSI、NEGA、ZERO 单元。程序如下:DATA1 SEGMENT M DW 21,-34,32,112,-324,0,76,0,48,50 POSI DW?NEGA DW?ZERO DW?DATA1 ENDS CODE1 SEGMENT ASSUME CS:CODE1,DS:DATA1 START:MOV AX,DATA1 MOV DS,AX MOV CX,10 LEA SI,M AGAIN:CMP WORD PTR SI,0 JL LOWER JE EQUAL INC POSI JMP LPP1 LOWE

25、R:INC NEGA JMP LPP1 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!EQUAL:INC ZERO LPP1:ADD SI,2 DEC CX JNZ AGAIN MOV AH,4CH INT 21H CODE1 ENDS END START 5.30 试编写程序,从键盘接收一英文单词,以空格结束,将其存入 BUF 开始的存储单元中,并在最后加上字符串结束符$。主要程序部分:LEA BX,BUF LOP:MOV AH,1 INT 21H CMP AL,20H JE NEXT MOV BX,AL INC BX JMP LOP NEXT

26、:MOV BYTE PTRBX,$5.31 编程。将 AX 寄存器中的 16 位数分成 4 组,每组 4 位,从低到高分别放在 AL,BL,CL,DL 中。程序段:START:MOV AX,1234H MOV BX,AX AND AL,0FH ;4 AND BL,0F0H ;3 AND AH,0FH MOV CL,AH ;2 AND BH,0F0H MOV DL,BH ;1 习题六答案:6.11 累加和 TOTAL=83 6.12 循环统计 X 中 0 的个数 6.13(1)将 BB1:RCL AL,1 改为 BB1:ROL AL,1(2)将 BB2:CMP BX,T LOOPNE BB2 改

27、为:DEC BX BB2:INC BX CMP BX,T LOOPNE BB2 6.15 计算 Y=12+34+56+78+910 的程序段答案:欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!MOV AL,1 MOV BL,2 MOV DX,0 MOV CX,5 AA1:MUL BL ADD DX,AX INC BL MOV AL,BL INC BL LOOP AA1 6.16 写程序段。查找 CATT 表中的字符”,找到后将 SIGN 单元置 1,否则 SIGN 单元置 0。catt db asdddd sign db?mov ax,extra

28、 mov es,ax mov sign,0 mov al,lea di,catt cld mov cx,7 repnz scasb jcxz nee mov sign,1 nee:mov ah,4ch int 21h 6.17 写程序段。在长度为 N 的字数组 VALUE 中统计负数的个数并保存到 AX 中。value dw 2,-4,-5,3,6,6,-8 n equ($-value)/2 ;元素个数 start:mov ax,data mov ds,ax mov cx,n mov bx,0 mov ax,0 rept1:mov si,valuebx ;取出元素 cmp si,0 jge l

29、et1 ;0 转 let1 inc ax ;为负数,ax 加 1 let1:add bx,2 loop rept1 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!6.18 从键盘输入一个数字,在屏幕上显示出以该数字开始 10 个数字串。CODE SEGMENT ASSUME CS:CODE START:MOV AH,1 INT 21H MOV CX,10 MOV BL,AL REPT1:CMP BL,9 JLE NEXT SUB BL,10 NEXT:MOV DL,BL MOV AH,2 INT 21H INC BL LOOP REPT1 MOV

30、 AH,4CH INT 21H CODE ENDS END START 6.19 编程。比较两个字符串是否相同,统计并显示出相同的字符个数和不同的字符个数。data segment bunch1 db stadent bunch2 db studEnt data ends code segment assume cs:code,ds:data,es:data start:mov ax,data mov ds,ax mov es,ax lea si,bunch1 lea di,bunch2 mov bx,0 ;bh=相同的个数,bl=不同的个数 mov cx,7 let1:mov al,si c

31、mp al,di ;两字符比较 jz equl ;相同转 equl inc bl ;不同 bl 加 1 jmp out1 equl:inc bh out1:inc si inc di 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!loop let1 mov dl,n ;显示n,代表不同 mov ah,2h int 21h add bl,30h ;加上 ASCII 码 mov dl,bl ;显示不同的个数 int 21h mov dl,e ;显示e,代表相同 int 21h add bh,30h mov dl,bh ;显示相同的个数 int 21h

32、 mov ah,4ch int 21h code ends end start 6.21 STRI 单元存有 10 个字符的字符串,以 0 结尾,编程去掉其中的空格符,并将后续字符向前递补。DATA SEGMENT STR DB SDABF G H0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA DI,STR SPACE:MOV CX,10 MOV AL,DI CMP AL,0 JE OUT CMP AL,20H JE DELETE JMP EXIT SUB CX,DI MOV SI,

33、DI DELETE:MOV BL,SI+1 MOV SI,BL INC SI LOOP DELETE EXIT:JMP SPACE OUT:MOV AH,4CH INT 21H 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!CODE ENDS END START 6.23 将内存中用 ASCII 码表示的 100 以内的十进制数转变为二进制数。十进制数不够 3 位以 20H(空格)补齐。设计思路:(1)用 EQU 伪指令获得需转换的十进制数的个数;(2)用双重循环。外循环控制个数,用 x 作为中间变量;(3)内循环将一个 3 位十进制数去掉 AS

34、CII 码后按位数扩大 10 倍再相加,保存后即存储为二进制数;(4)分两个数组保存 ASCII 码表示的十进制数和转换后的二进制数。程序如下:;6-23.asm 将内存中用 ASCII 码表示的 100 以内的十进制数转变为二进制数 data segment score1 db 36h,37h,20h,31h,30h,30h,38h,35h,20h,31h,30h,30h ;即 67,100,85,100 x dw?n equ 3 ;三位数 num equ(x-score1)/n ;十进制数个数 score2 dw num dup(0);保存转换后的二进制数 data ends code s

35、egment assume cs:code,ds:data start:mov ax,data mov ds,ax mov cx,num mov si,-2 mov bx,0 rept1:push cx ;保存外循环次数 mov cx,n rept2:mov al,score1bx ;从 score1 取数 cmp al,30h ;判断是否 0-9 jl exit cmp al,39h jg exit and ax,000fh ;去掉 ASCII 码 xchg ax,x mov dx,10 ;将 ax 中前一次形成的数扩大 10 倍 mul dx xchg ax,x add x,ax ;相加后

36、保存到 x exit:inc bx ;取下一位数 loop rept2 pop cx ;弹出外循环次数 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!add si,2 mov ax,x mov score2si,ax ;转换后的数据保存到 score2 mov x,0 loop rept1 mov ah,4ch int 21h code ends end start 运行结果:可以看到,67 转换为 0043,100 转换为 0064,85 转换为 0055。在 DEBUG 下显示的内存单元是十六进制表示,实际存储的是二进制数。习题七答案:7.1

37、2 功能:两个字节数相加。X 和 BL 相加保存到 Y。7.13 功能:键盘输入的字符保存到 KEY 单元中,直到按回车为止。7.14 功能:将 X 单元中的十六进制 3AH 变为十进制入栈保存,AH 中为余数。先将 0008H入栈,再将 0005H 入栈,结果为 58。7.16 写出子程序,从键盘输入一个多位十进制数,并分别保存到 BUFFER 开始的单元中。KEY_IN PROC PUSH AX PUSH BX MOV BX,0 LET1:MOV AH,1 INT 21H CMP AL,0DH ;输入回车退出 JZ EXIT MOV BUFFERBX,AL ;保存到 BUFFER INC

38、BX JMP LET1 EXIT:POP BX POP AX RET KEY_IN ENDP 7.17 从键盘输入多位数字,转换成十进制数并保存到 X 单元中。KEY_IN_DEC PROC PUSH AX PUSH BX MOV X,0 MOV BX,0 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!MOV SI,0 LET1:MOV AH,1 INT 21H CMP AL,0DH ;输入回车退出 JZ EXIT MOV BUFFERSI,AL ;保存到 BUFFER INC SI JMP LET1 EXIT:MOV CX,SI ;位数放在 C

39、X MOV SI,0 LET2:MOV AL,BUFFERSI SUB AL,30H MOV AH,0 XCHG AX,X ;形成十进制数 MOV BX,10 MUL BX XCHG AX,X ADD X,AX ;保存 INC SI LOOP LET2 POP BX POP AX RET KEY_IN _DEC ENDP 7.23 写出对内存单元 X 中的补码求真值子程序,补码保存在 AX 中。calcu proc push ax push bx push si mov ax,0 mov al,x and al,al jns zz neg al mov fuhao,-zz:mov si,0 m

40、ov bx,10 ;将 ax 变为十进制数真值 let1:mov dx,0 inc si ;统计余数个数 idiv bx mov ysi,dx ;在 y 单元保存余数 cmp ax,0 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!jnz let1 pop si pop bx pop ax ret calcu endp 7.30 编制一个计算数组中所有负数之和的子程序。并利用此子程序分别计算 A 数组和 B 数组中的负数之和,结果分别放在 SUM1 和 SUM2 单元中。DATA SEGMENT A DB 9,-8,-7,6,5 B DB -8,

41、7,6,-5,4 SUM1 DB?SUM2 DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,5 MOV SI,OFFSET A CALL LADD MOV SUM1,BL MOV SI,OFFSET B CALL LADD MOV SUM2,BL MOV AH,4CH INT 21H LADD PROC NEAR PUSH CX PUSH AX PUSH SI XOR BL,BL NEXT:MOV AL,SI AND AL,AL JNS JJJ ADD BL,AL JJJ:I

42、NC SI LOOP NEXT POP SI POP AX POP CX RET LADD ENDP 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!CODE ENDS END START 习题八答案:8.16 宏的作用:DOS 功能调用。功能号用哑元指出。8.17 宏的作用:两个操作数相加,结果保存在第 3 个数中。8.18 宏的作用:DOS 的 2 号显示功能。8.19 宏的作用:定义 VALUE 数组,数组长度和初值由哑元指出。8.20 缺少标号定义 LOCAL LETT1。宏的作用:两个哑元相减,结果为负则求补。8.27 程序:.model

43、 small.stack 100h.code start:input ;键盘输入 add al,20h ;大写变为小写 output al ;显示 mov ah,4ch int 21h end start 8.28 程序:.model small.data alpha db Computer.code start:display alpha ;显示字串 mov ah,4ch int 21h end start 8.29 程序:.model small.stack 100h.code start:input ;键盘输入 cmp al,-jnz start neg x ;求补 mov ah,4ch

44、 int 21h 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!end start 8.30 程序:.model small.stack 100h.code start:input ;键盘输入 mov bl,al input ;输入第 2 个数 add al,bl mov ah,0 aaa ;非压缩 BCD 码加法调整 add ax,3030h output ah ;显示高位 output al ;显示低位 mov ah,4ch int 21h end start 习题九答案:9.26 在屏幕的 row1、rank1 到 row2、rank2 开

45、窗口,清窗口,设置字符颜色为 color。9.27 将光标设置在 5 行 10 列上。9.28 回车换行宏。9.29 读取时钟计数器当前计数值,cx 保存高位,dx 保存低位;判断计数是否到 91 次(5秒),没到,继续循环读取,到 5 秒后做下面内容。9.30 设置 1CH 号中断的中断向量(win_time),将其保存到中断向量表中。9.35 编程实现在窗口中将键盘输入的小写字母加密后显示出来。程序如下:include 9-3.mac ;宏库.model small.data letter db Input Letter:$cont db?.code start:mov ax,data m

46、ov ds,ax clearsc ;清屏 clearsw ;窗口清屏 reptt:;置显示光标 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!mov ah,2 mov dh,11 ;在 11 行 30 列显示 mov dl,30 mov bh,0 int 10h;显示串 mov ah,9 mov dx,offset letter int 21h;置输入光标 mov ah,2 mov dh,15 ;在 15 行 30 列输入 mov dl,30 mov bh,0 int 10h;输入小写字母 mov ah,1 int 21h add al,20h

47、;加密;显示加密后的字符 mov dl,al mov ah,2 int 21h;开窗口 mov ah,6 mov al,1 ;上卷 1 行 mov ch,8 ;从 8 行 30 列到 15 行 60 列 mov cl,30 mov dh,15 mov dl,60 mov bh,27h ;绿底灰字 int 10h inc cont ;可输入 3 次 cmp cont,3 jne reptt out1:mov ah,4ch int 21h end start 9.36 编写程序,在屏幕上显示彩色的 26 个英文字母。程序如下:.model small.data letter db?欢迎您阅读并下载

48、本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!n=a ;重复汇编 m=1eh ;蓝底黄字开始 rept 26 ;26 个小写字母 db n,m n=n+1 m=m+1 endm.code start:mov ax,data ;各个段都在代码段中 mov ds,ax;开窗口 mov ah,06h mov al,0 mov bh,37h ;白底黑字 0f0h,兰灰底灰白字 37h,黄底白字 0e7h mov ch,3 ;从 8 行 30 列到 15 行 60 列 mov cl,3 mov dh,15 mov dl,60 int 10h;置光标 locate:mov

49、ah,2 mov dh,6 ;光标在 6 行 30 列 mov dl,30 mov bh,0 int 10h;显示彩色的 26 个英文字母 mov bx,offset letter+1 mov bp,bx mov bx,seg letter+1 mov es,bx mov ah,13h mov al,3 mov bh,0 mov cx,26 ;26 个字母 int 10h mov ah,4ch int 21h end start 9.37 编写程序,在窗口中将键盘输入的一串字符中的大写字母和小写字母的个数分别统计并显示出来。程序如下:include 9-4.mac ;宏库 欢迎您阅读并下载本文

50、档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!.model small.data mess1 db input:$mess2 db 29,32 dup(?)daxie db?xiaoxie db?.code start:mov ax,data mov ds,ax clearsc ;清屏 clearsw 8,30,15,60,27h ;开窗口,绿底灰白字 cursor 12,30 ;置显示光标;显示提示 mov ah,9 mov dx,offset mess1 int 21h;输入串 mov al,0 mov ah,10 mov dx,offset mess2 int

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁