School assignment
创始人
2024-01-16 17:43:20
0

目录

一、常用控制类汇编指令

二、编程实现统计寄存器AX中“1”和“0”的个数

三、编程实现从键盘输入10个1位整数

四、编程实现从键盘输入两个10进制的2位整数的和

五、编写程序练习直接、间接、相对、基址变址寻址


一、常用控制类汇编指令

MOV 传送字或字节.

MOVSX 先符号扩展,再传送.

MOVZX 先零扩展,再传送.

PUSH 把字压入堆栈.

POP 把字弹出堆栈.

PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.

POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.

PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.

POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.

BSWAP 交换32位寄存器里字节的顺序

XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)

CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )

XADD 先交换再累加.( 结果在第一个操作数里 )

XLAT 字节查表转换.

── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即

0-FFH); 返回 AL 为查表结果. ( [BX+AL]->AL )

IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )

OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )

输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,

其范围是 0-65535。

二、编程实现统计寄存器AX中“1”和“0”的个数

DATAS segment

DATAS ends

CODES segment

START:

    mov AX,DATAS

    mov DS,AX

    ;正式代码部分

    mov  AX,1001111011B ;2进制数7个1

    mov  CX,0   ;CX置为0

    mov  CH,16  ;记录当前操作的第几位数字

NEXT:

    test AX,0001H;让...0001与AX进行 与 运算

    JZ isZero   ;如果为0继续循环判断下一个

    inc  CL     ;自增1

isZero:

    dec  CH     ;高位-1

    JZ   EXIT   ;if(CH=0)则跳转到EXIT

    SHR  AX,1   ;逻辑右移1位

    JMP  NEXT

EXIT:

    count db ?,'$';向屏幕打印输出结果

    add cl,30H

    mov count,cl

    Lea dx,count

    mov AH,09   ;09号功能调用

    INT  21H

    mov  AL,0   ;置退出码

    mov  AH,4CH ;置功能调用号

    INT  21H    ;软中断指令:实施功能调用

CODES ends

    end START

三、编程实现从键盘输入10个1位整数

DATA SEGMENT

STR1 DB "Please input a number: $"

STR2 DB "The sum is: $"

CRLF DB 0AH,0DH,'$'   ;换行

COUNT DB 0

DIVNUM DB 10

RESULT DB 0,0,0,0,0,0,0,0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

LOOP1:

CALL INPUT ;子程序调用

CMP AL,0DH

JZ ENDINPUT

SUB AL,30H

ADD COUNT,AL

LEA DX,CRLF ;换行

MOV AH,9

INT 21H

JMP LOOP1

ENDINPUT:

LEA DX,STR2 ;换行

MOV AH,9

INT 21H

MOV AL,COUNT

MOV AH,0 ;使AX=AL作为被除数

MOV SI,0

LOOP2:

DIV DIVNUM   ; AL......AH

;ADD AH,30H

MOV RESULT[SI],AH

CMP AL,0

JZ NEXT

MOV AH,0

ADD SI,1

JMP LOOP2

NEXT:

ADD SI,1

MOV CX,SI

SUB SI,1

LOOP3:

ADD RESULT[SI],30H

MOV AH,02H

MOV DL,RESULT[SI]

INT 21H

SUB SI,1

LOOP LOOP3

MOV AX,4C00H

INT 21H

INPUT PROC

LEA DX,STR1

MOV AH,9

INT 21H

MOV AH,1

INT 21H

RET

INPUT ENDP

CODE ENDS

END START

四、编程实现从键盘输入两个10进制的2位整数的和

stack segment

db 10 dup(?)

stack ends

data segment

;显示提示语句

string_1 db 'input num a: $'

string_2 db 0ah,0dh,'input num b: $'

string_3 db 0ah,0dh,'a+b= $'

data ends

code segment

assume cs:code,ds:data,ss:stack

start:

mov ax,data

mov ds,ax

;显示提示

lea dx,string_1

mov ah,09h

int 21h

;读取第一个数

mov ah,01h

int 21h

sub al,30h

mov bl,al

lea dx,string_2

mov ah,09h

int 21h

;读取第二个数

mov ah,01h

int 21h

sub al,30h

lea dx,string_3

mov ah,09h

int 21h

;将最后的结果放入al中 AAA是关键

xor ah,ah

add al,bl

AAA

push ax; 保护ax

;输出结果的高位

add ah,30h

mov dl,ah

mov ah,02h

int 21h

pop ax

;输出结果的低位

add al,30h

mov dl,al

mov ah,02h

int 21h

mov ax,4c00h

int 21h

code ends

end start

五、编写程序练习直接、间接、相对、基址变址寻址

准备工作:使用E命令,要求对2000H:3000H字单元预置数据。

(1)采用直接寻址方式,实现将逻辑地址2000H:3000H内存单元开始的字数据传送至AX寄存器,用A命令编写程序实现。用T命令单步执行,并记录运行结果。

 (2)采用寄存器间接寻址方式,实现将逻辑地址2000H:3000H的内存单元中数据传送至BX寄存器,用A命令编写程序实现,用T命令单步执行,并记录运行结

(3)预设(SI)=0100H,(DS)=2000H,(21100H)=6789H。已知偏移量D=1000H,采用寄存器相对寻址方式,将内存单元(21100H)的内容读出送给AX寄存器(即给AX赋值为6789H),用A命令编写程序实现,用T命令单步执行,并记录运行结果。

(4)预设(DS)=2000H,(21200H)=1234H。采用基址变址寻址方式将物理地址21200H单元内容传送到AX,用A命令编写程序实现,用T命令单步执行,并记录运行结果。

 

相关内容

热门资讯

第二学期开学典礼高三学生代表... 第二学期开学典礼高三学生代表发言稿(精选7篇)  在社会一步步向前发展的今天,用到发言稿的地方越来越...
广播稿开头导语   广播稿的开头导语是怎样的?下面CN人才网小编为大家带来的是广播稿开头导语,希望对大家有所帮助~ ...
小学数学老师家长会发言稿   随着时间的流逝,孩子们在渐渐地长大,家长会就是老师和家长共同探讨怎样给孩子一个良好的教育环境。以...
米洛斯的维纳斯说课稿 关于米洛斯的维纳斯说课稿  作为一位兢兢业业的人民教师,常常要根据教学需要编写说课稿,说课稿有助于提...
高中生运动会广播稿 高中生运动会广播稿精选  第一篇:力量,信念,拼搏与奋斗  你是运动场的心脏,跳动梦想;你是漫长路的...
小学六年级语文下册卖火柴的小... 小学六年级语文下册卖火柴的小女孩说课稿  一、作品解读。  三年级下册第六单元以“安徒生和他的童话”...
适合教师节朗诵稿 适合教师节朗诵稿(通用16篇)  随着社会不断地进步,大家或多或少都接触过一些经典的朗诵稿吧,朗诵,...
三年级数学《简单的小数加减法... 三年级数学《简单的小数加减法》说课稿  作为一位无私奉献的人民教师,编写说课稿是必不可少的,说课稿有...
《9的认识》说课稿 《9的认识》说课稿范文  一、说教材  1、教学内容  九年义务教育五年制小学数学课本第一册第二单元...
情感电台广播稿 情感电台广播稿(通用7篇)  有在学校广播站锻炼的学生都知道,广播前都会提前做好广播稿,一份优秀的广...
评课稿 评课稿模板(通用11篇)  评课是指评者对照课堂教学目标,对教师和学生在课堂教学中的活动以及由此所引...
一年级《雨点儿》说课稿 人教版一年级《雨点儿》说课稿  作为一位杰出的老师,时常需要编写说课稿,认真拟定说课稿,写说课稿需要...
中班集体活动《快快慢慢》说课... 中班集体活动《快快慢慢》说课稿  一、说目标  幼儿天生对富有动感的对象有着浓厚的兴趣,这些对象极易...
音乐与人生说课稿 音乐与人生说课稿  下面是关于高中音乐鉴赏音乐与人生说课稿范文,欢迎阅读!  音乐与人生说课稿  一...
二年级期中家长会班主任发言稿 二年级期中家长会班主任发言稿我非常理解做父母的心情,二年级期中家长会班主任发言稿。我们白天工作,晚上...
主题班会现场评议稿范文推荐3... 主题班会现场评议稿范文 第一篇大家好!今天,我演讲的题目是《团队凝聚力量》一个成功的组织,只有构建一...
亲子运动会新闻稿   亲子运动会举办了,让你写一篇关于亲子运动会的新闻稿你会写吗?下面是应届毕业生小编为大家收集的关于...
长春版《海浪》说课稿 长春版《海浪》说课稿范文  我说课的内容是长春版教材三年级上册第六单元《海浪》。大海美丽、壮阔、雄浑...
春节运动会加油稿 春节运动会加油稿大全  1. 超越对手,超越自我,是我们的目标,是我们的信念,在清凉的初冬,在喧嚣的...
12月5日国际志愿者日国旗下... 12月5日国际志愿者日国旗下讲话稿(精选5篇)  在充满活力,日益开放的今天,我们都不可避免地要接触...