汇编题目

2024-05-18 22:55

1. 汇编题目

八、填空题。
1.假设(SS)=3000H,(SP)=1008H;如果在堆栈中存入3个数据,则栈顶的物理地址为_31002_H; 如果又从堆栈中取出5个数据, 则栈顶的物理地址为_3100C_H;再从堆栈中取出4个数据,则栈顶的物理地址为_31014_H;如果又在堆栈中存入6个数据,则栈顶的物理地址为_31008_H。
2.字符“0” 加5后的字符是_“5”_;字符“a” 减20H后的字符是_“A”_。
答案:第1空:"5",第2空:"A" 。
做法:1,出入栈每个数据以字(2bytes)为单位,入栈向低地址伸展,即入栈sp-n*2,出栈为sp+n*2,物理地址SS*10H+SP
            2,常识小写字母ASCII码值比大写字母大20H,数字的ASCII码值低四位为数字,高四位相同

九、根据下列各题的要求,编制程序。
1.用移位、传送和加法指令完成(AH)*9的计算。(设积不会溢出)
小学算法:a*9=a*8+a:移位可实现2,4,8倍或1/2,1/4,1/8
解:mov al,ah-->mov cl,4 -->shl ah,cl--->add ah,al
2.设I、J、K为无(有)符号字节(字)变量,将J、K中大(小)的存入I中。
解:
mov ax,J-->mov bx,K-->cmp ax,bx
ja axGreater    无符号数比较,ax大直跳
mov ax,bx  否则,将较大的bx移入ax,保证ax始终最大
axGreater:
mov I,ax 
>>>>>>>>>
mov ax,J-->mov bx,K-->cmp ax,bx
jl axLower    有符号数比较,ax小直跳
mov ax,bx  否则,将较小的bx移入ax,保证ax始终最小
axLower:
mov I,ax 

3.设X、Y、Z均为有符号的字变量,计算(678+X*9)/234, 并将商存入Y中、余数存入Z中。
解:
mov ax,X-->mov bx,9-->mul bx-->add ax,678-->adc dx,0-->mov bx,234-->div bx
mov Y,ax-->mov Z,dx

5.数据段D中有 M DB ‘HOW DO YOU DO?’,0DH,0AH,‘$’ ,显示此字符串。
解:
mov dx,offset M
mov ah,9
int 21h
6.将键盘输入的大(小)写字母用小(大)写字母显示出来,若输入的不是大(小)写字母,则返回。
不带回显键盘输入功能号-->ah

main proc
start:
int 21h
cmp al,41h
jb exit  ;<A
cmp al,6Ah
ja exit  :>z
cmp al,5Ah
jna uppercase
cmp al,61h
jnb lowercase
exit:
 ret
uppercase:
 add al,20h
 jmp showch
lowercase:
 sub al,20h
showch:
 mov dl,al

ret
main endp
end start

8.将DL中的低四位二进制数以十六进制数形式显示出来。
mov cl,4-->shl dl,cl-->shr dl,cl
cmp dl,10h
jnb decimalnum
sub dl,10h
add dl,'A'
jmp showit
decimalnum:
add dl,30h
showit:
 显示字符功能号-->ah
 int 21h


B.测试8EH中0的位数。
mov al,8Eh
mov cx,8
xor bl,bl
bittest:
 shl al,1
 jc continue
inc bl
continue:
loop bittest
0的位数在bl中
C.测试8EH中1的位数。
mov al,8Eh
mov cx,8
xor bl,bl
bittest:
 shl al,1
 jnc continue
inc bl
continue:
loop bittest
1的位数在bl中

D.计算305*3,程序段执行后,DX=________ ,AX=________ 。
305>256,在ax中,mul后为dx:ax,明显不超过ax表示范围,即dx=0,ax=915
E.计算41*3,程序段执行后,AX=_123D_ 。

F.计算0F2/3,程序段执行后,AX=________ 。
ax=f2,bl=3,mul bl==>al=商,ah=余
需分有符号数与无符号数除法分析
G.计算62/3,程序段执行后,AH=________ ,AL=________ 。
同上
H.统计正(负/奇/偶)数的个数。
n位Reg或Men表示个数为:
正:有符号--》2^(n-1)-1;无符号2^n
负: 2^(n-1)
奇数、偶数:2^(n-1)

汇编题目

2. 汇编题目

A、85B92H 
 物理地址=段地址*10H+有效地址,这里的段地址是DS=8225H,有效地址是DI=3942H
所以:物理地址=8225H*10H+3942H=85B92H

3. 汇编小题

首先,ROM 8KB即8K×8位,RAM32KB即32K×8位。
因此用2片8K×4位的ROM芯片进行位扩展就得到了1片8K×8位的ROM芯片,
        用4片8K×2位的RAM芯片进行位扩展得到1片8K×8位的RAM芯片,
        再用4片8K×8位的RAM芯片进行字扩展就得到了一片32K×8位RAM芯片。
综上可得,8K × 4位的ROM芯片需要2片,8K × 2位的RAM芯片需要16片。

汇编小题

4. 一个汇编的考试题

汇编语言2005—2006学年第二学期期末考试复习题及参考答案 一、 填空 1.  十进制数369转换成二进制数为()2,转换成十六进制数为()16. 2.  计算机中的指令由(  )和( 地址码 )两部分组成。 3.  8086的地址总线有20根,寻址范围为(  )字节。 4.  下一条将要执行的指令的地址存放在寄存器(  )中。 5.  写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。 6.  汇编语言源程序需经过()程序汇编,(  )程序连接才能生成可执行文件。 7.  存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=() 8.  REP指令前缀与()指令配合使用。 9.  在显示器上查看和修改内存单元的内容可以使用DEBUG的(  )和(  )命令。 10.  (AL)=BFH,要求屏蔽第0,1两位,则要执行指令(  );如果要求第0,1位变反,可使用指令(  ) 11.  宏汇编适合于(),()的子功能段使用; 二、 选择题 1.  设字长N=16,有符号数7AE9H的补码表示为(         ) A. 9EA7H  B. 76C4H  C. 8417H  D. 7AE9H  2.  比较有符号数3260H与0B425H的大小关系为(         ) A.  相等   B.  小于   C.  大于  D.  不能比较 3.  指令JMP  WORD  PTR  [BX][DI]中转移的目标地址为(        ) A.16 d x(DS)+(BX)+(DI)  B.16d x(ES)+(BX)+(DI)        C.16d x(SS)+(BX)+(DI)  D.16d x(CS)+(BX)+(DI) 4.  在指令 MOV AX,[1000H]中,源操作数的寻址方式为(        ) A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址 5.  中断矢量表中存放的是(        ) A.  中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址 6.  8086 的汇编语言指令系统中的条件转移指令可以使程序转移到(       ) A.  段内的任何地方   B.  距该指令偏移地址为-32768~+32767的地方 C. 距该指令偏移地址为-128~+127的地方.  D. 段外 7.  能定义ASCII码字符串的数据定义语句有(        ) A.  DB,DW,DD,DQ,DT B. DB,DW,DD C.   DB, DW D.  DB; 8.  若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为(       ) A.SF=0,ZF=0,CF=1,OF=1,PF=0  B.SF=1,ZF=0,CF=1,OF=0,PF=1 C.SF=0,ZF=0,CF=0,OF=1,PF=0  D.SF=1,ZF=0,CF=1,OF=1,PF=1 9.  比较指令CMP(      )   A.  专用于有符号数比较   B. 专用于无符号数比较      C. 专用于串比较    D. 不区分比较的对象是有符号数还是无符号数 10.  数据传送指令对标志位的影响为(        ) A.都不影响;       B.都影响; C.除了SAHF,POPF,其它均不影响.   D.除了控制标志位,其它均不影响 三、 判断题 (      )31.  段间调用的子程序必须由伪操作FAR说明为远过程。   (      )32.  PC机以位作最小寻址单位。         (      )33.  当SRC是立即数时,DST可以使用存储器寻址。     (      )34.  指定各个逻辑段偏移地址可以使用ORG伪指令。    (      )35.  LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。 (      )36.  POP  IP              (      )37.  设327FH和0BFFFH为有符号数的补码表示,则327FH < 0BFFFH     (      )38.  多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明        (      )39.  MOV AX,VAR1-VAR2+100           (      )40.  ADD [SI],50             四、 程序分析题 1.  A  DW  1234H B  DW  5678H PUSH  A PUSH  B POP  A POP  B 试回答:上述程序段执行后(A)=            ,(B)=              2.  分析下面程序段, MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL 试问程序段执行后(BL)=                (AL)=                    3.  STRING DB ‘ABCDEFGHIJ' MOV AH,01 ;从键盘输入字符1~9 INT 21H AND AL,0FH DEC AL XOR AH,AH MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX] MOV AH,02H ;显示输出 INT 21H 试回答: (1)上述程序段的功能是什么?     (2)如从键盘输入字符‘4',程序段有什么结果?   4.  有如下程序: AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 上述程序运行后,试回答: (1)当(AL)=时,程序转向BRCH1 (2)当(AL)=时,程序转向BRCH2 (3)当(AL)=时,程序转向BRCH3 5.  下列程序段完成什么工作?  DAT1  DB  30  DUP(?)  DAT2  DB  10  DUP(?)        ┇         MOV  CX,10         MOV  BX,20         MOV  SI,0         MOV  DI,0  NEXT:MOV  AL,DAT1〔BX〕〔SI〕         MOV  DAT2〔DI〕,AL         INC  SI         INC  DI         LOOP  NEXT 6.  下面程序段执行完以后,AL的内容是什么?     MOV  BX,00FFH  AND  BX,0FFFH  OR  BX,0F0FH  XOR  BX,00FFH 7.  执行下列指令后,AX寄存器中的内容是什么?      START  DW  10H,20H,30H,40H,50H  EE1  DW  3       ┇       MOV  BX,OFFSET  START       ADD  BX,EE1       MOV  AX,〔BX〕 8.  试分析下面程序段的功能是什么?              CMP  AL,‘A’        JC  OTHER        CMP  AL,‘Z’+1        JNC  OTHER        JMP  LETTER                ┇  OTHER:     ┇  LETTER:     ┇   五、 程序填空题 1.  设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H   MOV PLW,BX JMP DONE K1:     DONE: 2.  现有下列数据段: DATA SEGMENT STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS 下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT __ __ LOOP:MOVSB __ __ LOOP LOP  或者() 六、 程序设计题 1.  编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。)                   2.  设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。                    数据段如下: DATA SEGMENT DAT DB XXH SQRTAB DB 0,1,4,9,...81 SQR DB? DATA ENDS    3.  试编写出把DX、AX中的双字右移四位的程序段。 4.  定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。   汇编语言2005—2006学年第二学期期末考试复习题及参考答案 一、 填空 1.  十进制数369转换成二进制数为(101110001)2,转换成十六进制数为(171)16. 2.  计算机中的指令由( 操作码 )和( 地址码 )两部分组成。 3.  8086的地址总线有20根,寻址范围为( 1M )字节。 4.  下一条将要执行的指令的地址存放在寄存器( 指令指针寄存器 )中。 5.  写出IBM PC机的三种子程序返回的指令(RET), (IRET),(IRETD)。 6.  汇编语言源程序需经过(汇编)程序汇编,( 连接 )程序连接才能生成可执行文件。 7.  存储器某单元的地址表示为2314H:4132H,则它的偏移地址=(4132),物理地址=(27272H) 8.  REP指令前缀与()指令配合使用。 9.  在显示器上查看和修改内存单元的内容可以使用DEBUG的( D )和( E )命令。 10.  (AL)=BFH,要求屏蔽第0,1两位,则要执行指令( AND AL,3F );如果要求第0,1位变反,可使用指令( XOR AL,3F ) 11.  宏汇编适合于(程序短),(参数多)的子功能段使用; 二、 选择题 1.  设字长N=16,有符号数7AE9H的补码表示为(    D     ) A. 9EA7H  B. 76C4H  C. 8417H  D. 7AE9H  2.  比较有符号数3260H与0B425H的大小关系为(    C     ) A.  相等   B.  小于   C.  大于  D.  不能比较 3.  指令JMP  WORD  PTR  [BX][DI]中转移的目标地址为(    A    ) A.16 d x(DS)+(BX)+(DI)  B.16d x(ES)+(BX)+(DI)        C.16d x(SS)+(BX)+(DI)  D.16d x(CS)+(BX)+(DI) 4.  在指令 MOV AX,[1000H]中,源操作数的寻址方式为(    B    ) A.立即寻址 B.直接寻址 C.段内间接寻址 D.寄存器寻址 5.  中断矢量表中存放的是(    D    ) A.  中断类型号 B. 断点地址 C. 中断服务程序 D. 中断服务程序入口地址 6.  8086 的汇编语言指令系统中的条件转移指令可以使程序转移到(   A    ) A.  段内的任何地方   B.  距该指令偏移地址为-32768~+32767的地方 C. 距该指令偏移地址为-128~+127的地方.  D. 段外 7.  能定义ASCII码字符串的数据定义语句有(    D    ) A.  DB,DW,DD,DQ,DT B. DB,DW,DD C.   DB, DW D.  DB; 8.  若(AL)=87H,执行ADD AL,0F5H后,S,Z,C,O,P的状态为(    C   ) A.SF=0,ZF=0,CF=1,OF=1,PF=0  B.SF=1,ZF=0,CF=1,OF=0,PF=1 C.SF=0,ZF=0,CF=0,OF=1,PF=0  D.SF=1,ZF=0,CF=1,OF=1,PF=1 9.  比较指令CMP(    D   )   A.  专用于有符号数比较   B. 专用于无符号数比较      C. 专用于串比较    D. 不区分比较的对象是有符号数还是无符号数 10.  数据传送指令对标志位的影响为(    D    ) A.都不影响;       B.都影响; C.除了SAHF,POPF,其它均不影响.   D.除了控制标志位,其它均不影响 三、 判断题 (      )31.  段间调用的子程序必须由伪操作FAR说明为远过程。  T (      )32.  PC机以位作最小寻址单位。        F (      )33.  当SRC是立即数时,DST可以使用存储器寻址。    F (      )34.  指定各个逻辑段偏移地址可以使用ORG伪指令。   T (      )35.  LOOPE/LOOPZ是相等/为零时转移到标号,其退出条件是(CX)=0或ZF=0。T (      )36.  POP  IP             F (      )37.  设327FH和0BFFFH为有符号数的补码表示,则327FH < 0BFFFH    F (      )38.  多个模块间的符号交叉引用要用伪指令PUBLIC和EXTRN说明       T (      )39.  MOV AX,VAR1-VAR2+100          F (      )40.  ADD [SI],50            F 四、 程序分析题 1.  A  DW  1234H B  DW  5678H PUSH  A PUSH  B POP  A POP  B 试回答:上述程序段执行后(A)=      5678H      ,(B)=         1234H     2.  分析下面程序段, MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL 试问程序段执行后(BL)=       0E4H         (AL)=        0DDH            3.  STRING DB ‘ABCDEFGHIJ' MOV AH,01 ;从键盘输入字符1~9 INT 21H AND AL,0FH DEC AL XOR AH,AH MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX] MOV AH,02H ;显示输出 INT 21H 试回答: (1)上述程序段的功能是什么?   根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。  (2)如从键盘输入字符‘4',程序段有什么结果? 显示器显示字符‘D’  4.  有如下程序: AND AL,AL JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 上述程序运行后,试回答: (1)当(AL)=(AL)=0 时,程序转向BRCH1 (2)当(AL)=(AL)=1 时,程序转向BRCH2 (3)当(AL)=(AL)=-1 时,程序转向BRCH3 5.  下列程序段完成什么工作? 把DAT1+20存储单元开始的10个字节搬到DAT2开始的连续10个存储单元中 DAT1  DB  30  DUP(?)  DAT2  DB  10  DUP(?)        ┇         MOV  CX,10         MOV  BX,20         MOV  SI,0         MOV  DI,0  NEXT:MOV  AL,DAT1〔BX〕〔SI〕         MOV  DAT2〔DI〕,AL         INC  SI         INC  DI         LOOP  NEXT 6.  下面程序段执行完以后,AL的内容是什么?  0F00H   MOV  BX,00FFH  AND  BX,0FFFH  OR  BX,0F0FH  XOR  BX,00FFH 7.  执行下列指令后,AX寄存器中的内容是什么?  3000H    START  DW  10H,20H,30H,40H,50H  EE1  DW  3       ┇       MOV  BX,OFFSET  START       ADD  BX,EE1       MOV  AX,〔BX〕 8.  试分析下面程序段的功能是什么?   判断AL的内容,若为‘A’~‘Z’的大写字母时,程序转LETTER处理,否则转OTHER处理           CMP  AL,‘A’        JC  OTHER        CMP  AL,‘Z’+1        JNC  OTHER        JMP  LETTER                ┇  OTHER:     ┇  LETTER:     ┇     五、 程序填空题 1.  设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。 TEST AX,8000H   JE K1或JZ K1   MOV PLW,BX JMP DONE K1:  MOV PLW,AX   DONE: 2.  现有下列数据段: DATA SEGMENT STR1 DB‘ABCDEFGHIJKL' COUNT EQU -STR1 BUF DB COUNT DUP(0) DATA ENDS 下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。试把程序中所空缺的指令填上。 MOV SI,OFFSET BUF-1 MOV DI,OFFSET BUF MOV CX,COUNT __ CLD__ LOOP:MOVSB __ SUB SI,2__ LOOP LOP  或者(STD/ADD DI,2) 六、 程序设计题 1.  编程序段计算SUM=∑ai=a1+a2+...+a20,已知a1......a20依次存放在以BUF为首址i=1的数据区,每个数据占两个字节,和数SUM也为两个字节。(要求用循环结构编写,循环控制采用计数控制)。(此题勿需书写源程序格式,只需把试题要求的有关指令序列书写出来。)                  程序段:MOV AX,0 MOV BX,OFFSET BUF MOV CX,20 LOP:ADD AX,[BX] INC BX INC BX LOOP LOP MOV SUM,AX  2.  设在DAT单元存放一个-9~+9的字节数据,在SQRTAB数据区中存放了0~9的平方值,请用直接查表法编写一个子程序,在SQRTAB中查找出DAT单元中数据对应的平方值送SQR单元。并写出主程序的调用方式。                    数据段如下: DATA SEGMENT DAT DB XXH SQRTAB DB 0,1,4,9,...81 SQR DB? DATA ENDS    STACL1 SEGMENT PARA STACK DW 20H DUP(?) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV DS,AX ┇ CALL SUBROT ┇ MOV AH,4CH INT 21H SUBROT PROC PUSH AX PUSH BX LEA BX,SQRTAB MOV AL,DAT TEST AL,80H JNS NEXT NEG AL NEXT: XLAT SQRTAB MOV SQR,AL POP BX POP AX RET SUBROT ENDP CODE ENDS END SRART 3.  试编写出把DX、AX中的双字右移四位的程序段。 MOV  CL,04  SHR  AX,CL  MOV  BL,DL  SHR  DX,CL  SHL  BL,CL  OR  BL,AH 4.  定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。 DATA  SEGMENT  PATTERN  DB  23H,24H,25H,26H  DISPLAY  DB  80  DUP(‘  ’),‘$’  DATE  ENDS  CODE  SEGMENT    ┇  CLD  LEA  SI,PATTERN  LEA  DI,DISPLAY  MOV  CX,80  REP  MOVSB  MOV  AH,09H  LEA  DX,DISPLAY  INT  21H  RET  CODE  ENDS

5. 试题解释汇编与十年真题汇编的区别

试题解释汇编与十年真题汇编的区别如下:
1、试题解释汇编
《试题解释汇编》这样的书对每个知识点都进行了非常详细的解释,将大纲的内容梳理得更加清晰,同时新增了大纲上未做要求但是考试却经常会遇到的教育拓展知识点。
2、十年真题汇编
《真题汇编》里面才能看到自统考以来的历年真题,现在很多都是只给你展现近10年的真题,真题是学习中非常重要的一个文本,往年真题,通过真题检验复习效果,洞察出题思路;我觉得真题是极具价值的。

真题真题的来源:
真题的来源可简单理解为考试组织机构的学者出的题目,真题是在考试中真实出现的,凡是不在考试中出现的试题均不算真题,顶多可理解为模拟题或参考题。真题既可以包含某年某项考试全部内容的完整试卷,也可以同类型汇总的形式出现的专项训练。与之相对应的,是教材、辅导资料、练习册中出现的、由编者原创的题目。
严格意义上讲,全真模拟题与真题是有一定差距的,全真模拟题指的是某年某考试出题组题库中的题目,但并未在该考试中正式出现,因此不能等同于真题。
以上内容参考 百度百科-真题

试题解释汇编与十年真题汇编的区别

6. 汇编题目求答案

AX=OFF60H,CF=1 
MOV DX,96        ;DX =0060H
XOR DH,OFFH  ;DH=OFFH,DX=OFF60H,CF=0
SBB AX,DX        ;AX=0,CF=0
执行后:AX=0,CF=0

7. 真题详解算汇编作品吗

真题详解算不算汇编作品这个要看出题人是不是自己原创的题,自己做的全过程,如果不是那就是汇编作品,而且还容易侵权。
汇编若干作品、作品的片段或者不构成作品的数据或者其他材料,对其内容的选择或者编排体现出独创性的作品,为汇编作品。【摘要】
真题详解算汇编作品吗【提问】
真题详解算不算汇编作品这个要看出题人是不是自己原创的题,自己做的全过程,如果不是那就是汇编作品,而且还容易侵权。
汇编若干作品、作品的片段或者不构成作品的数据或者其他材料,对其内容的选择或者编排体现出独创性的作品,为汇编作品。【回答】
希望能对您有所帮助【回答】
祝您生活愉快【回答】

真题详解算汇编作品吗

8. 谁有汇编语言的试题???

一、 选择题
1. 有一个翻译程序,它能把汇编语言编写的源程序翻译成CPU能识别的机器语言,这个编译程序被称为(汇编)程序。
2. 字符‘A’的ASCII码值为(41H)。
3. MOV  AX[BP]指令隐含的段是(SS)。
4. (ADD  AX,1234H)的指令是立即寻址方式。
5. 指令STC是将进位位(置1)。
6. AX=5A5AH,BX=FFFFH,执行XOR  AX,BX指令后,AX=(A5A5H)。
7.  AX=100H,DX=123H,执行MUL  DX指令后, DX=(1)。
8. AX=100H,DX=123H,执行SUB AX,DX指令后,进位位=(1)。
9. BX=100H,CX=1202H,执行SHL  BX, CL指令后,BX=(400H)。
10已知(AH)=12H,(BL)=0A9H,执行ADC  AH,BL后,AH=(BBH或BCH)。
二、 填空题。
1.. 有多种指令使得DX=0,写出2种(MOV DX,0),(SUB DX,DX),(XOR  DX,DX),(AND  DX,0)。
2. JNE指令的功能是(两个数不相等时,跳转)。
3. 在子程序参数传递中,用RET 2指令的作用是(返回时弹出地址后再弹出2个字节)。
4. IN  AL,60H的功能是(从端口 60H读入一个字节到AL中)。
5. ASCII码(0D,0A)输给打印机,则打印机执行(回车),(换行)。
三、简答题。
1. 子程序返回DOS的程序(写出至少一种程序,仅要求写出关键指令)。
1:
mov ax,data
 Mov ds,ax
 ……
Mov ah,4ch
Int 21h
2:
push ds
xor ax,ax
push ax
……
ret
2. 列出可用于操作和运算的7个寄存器。
可用:Ax,bx,cx,dx,si,di,bp
不可用:ds,cs,es,ip,ss,sp
3. 为什么运行速度是关键时用宏,而存储空间的关键时用子程序。
宏调用是在源程序被汇编时由汇编程序处理,而子程序调用是在程序执行期间由CPU直接执行。子程序调用时会比宏调用后的代码多执行CALL指令和RET指令;以及需要附加的指令进行参数传递,因而执行速度稍慢。所以运行速度是关键时用宏。由于每一次宏调用都要宏展开,把宏体中的内容复制一遍,因而用宏汇编编写的程序在目标代码中会重复出现相同或相似的程序段,占用的内存空间大;而子程序是由CALL指令调用,无论调用多少次,子程序目标代码只在最终的执行程序中出现一次,目标代码相对较短。所以存储空间的关键时用子程序。
4. 简述:子程序参数传递的3种方法。
1.用寄存器传递参数
2.用内存变量传递参数
3.用堆栈传递参数
C语言的子函数一般用堆栈传递参数
四、设计操作题。
 编一个子程序,将一个0~F的数值(设存在AL中,A~F为大写),转换成供显示的ASCII值(返回参数由AL传递)。要求有过程定义,设子程序名为ZH。
ZH  PROC  NEAR
CMP AL,9
JA  A1
ADD  AL,30H
A1:ADD  AL,37H
ENDP  
五、计算题。
 编程序,计算1~11的奇数累加和。要求用变量或数组,具有所有段、过程,以及主程序、子程序,返回DOS功能。要求:用宏汇编编程,程序完整。(若程序较长,请写成两列)。
Data segment aa db 1,3,5,7,9,11,24h strg  db '00$' data ends  stack segment stack Db 200 dup(0) Stack ends Code segment   Assume cs:code, ds:data, ss:stack A1 proc far Start: mov ax,data      Mov ds,ax      Mov ax,0      Mov si,0      Mov cx,6      call A2      mov ah,al       shr ah,1       shr ah,1       shr ah,1       shr ah,1       and al,0fh       add al,30h       add ah,30h       mov strg[0],ah       mov strg[1],al       mov dx,offset strg       mov ah,9h       int 21h      Mov ah,4ch      Int 21h  A1 endp  A2 proc near Loop1:   Add Al,aa[si]     Inc si   Loop loop1   ret A2 endp Code ends End start





DATA   SEGMENT 
       B  DB  '00$'      
DATA   ENDS
SSEG   SEGMENT  PARA  STACK'STACK'
       DB  80H  DUP(?)
SSEG   ENDS
CODE   SEGMENT
       ASSUME   ds:DATA,SS:SSEG,cs:CODE
A1     PROC   FAR
START: MOV  AX,DATA
       MOV  DS,AX       
       CALL L1
       MOV  AH,AL
       MOV  CL,4
       SHR  AH,CL
       AND  AL,0FH
       ADD  AH,30H
       ADD  AL,30H
       MOV  B[0],AH
       MOV  B[1],AL
       mov  dX,offset B
       mov  ah,9h
       int  21h         
       MOV  AH,4CH
       INT  21H
A1     ENDP
L1     PROC  NEAR
       MOV   AL,0
       MOV   BL,1
       MOV   CL,6
LOOP1: ADD   AL,BL
       ADD   BL,2
       LOOP  LOOP1
       RET
L1     ENDP
CODE   ENDS
       END   STARt
最新文章
热门文章
推荐阅读