汇编语言 ARY DB 0,0,3,4 CMP ARY[BX],0 是什么意思,尤其是ARY[BX]是什么意思

作者&投稿:劳卷 (若有异议请与网页底部的电邮联系)
微机汇编语言问题 ORG 0200H ARY DW -1,2,-3,4 CNT DW $-ARY VAR DW ARY,$+4~

第一个问题我觉得AX应该等于0FFFFH吧正好-1,mov ax, ary这里的ARY应该是偏移地址里的值,下面一行里不是有个OFFSET伪指令吗。
第二个问题MOV DX, VAR+2 VAR+2里的值是$ + 4 ,老师说得没错。
VAR DW ARY, $ + 4
VAR = 020AH 第一个变量的偏移
VAR + 2 = 020CH 第二个的偏移
$ + 4 = 020Ch + 4
要是会用DEBUG 就一目了然了!

darea segmentx dw ?ary_head dw 5,6,8,12,17,26,28,72,506,777,827ary_end dw 2404n dw 903darea endscode segmentmain proc farassume cs: code,ds:dareastart:push dsxor ax,axpush axmov ax,dareamov ds,axmov ax, n ;(1)mov ary_head-2,0ffffhmov si, 0 ;(2)compare:;cmp ary_end [ (3)] , axcmp ary_end [si] , axjle insertmov bx,ary_end[si];(4) mov ary_end[si+2],bxsub si,2jmp short compareinsert: mov ary_end[si+2], ax ;(5)retmain endpcode endsend start

汇编指令
ARY DB 0,0,3,4
是定义一个叫ary的char型的数组变量,它有4个成员,{0,0,3,4}
用C语言理解的话,就是 char ary[4] = {0,0,3,4};

CMP ARY[BX],0,就是用ary数组中的某个成员的值,与0做比较。
bx是index
用C语言理解:
比如:bx=1
ary[1] > 0
ary[1] == 0
ary[1] < 0

cmp ary[bx], 0  的结果,就相当于这3条C语言语句的结果。



阜宁县15319187359: 汇编语言 ARY DB 0,0,3,4 CMP ARY[BX],0 是什么意思,尤其是ARY[BX]是什么意思 -
以贞强阳: 汇编指令 ARY DB 0,0,3,4 是定义一个叫ary的char型的数组变量,它有4个成员,{0,0,3,4} 用C语言理解的话,就是 char ary[4] = {0,0,3,4}; CMP ARY[BX],0,就是用ary数组中的某个成员的值,与0做比较.bx是index 用C语言理解:比如:bx=1 ary[1] > 0 ary[1] == 0 ary[1] < 0 cmp ary[bx], 0 的结果,就相当于这3条C语言语句的结果.

阜宁县15319187359: 用汇编语言实现选出数组中的最大数,数组如下: DATA SEGMENT ARY DB 5,12,13,6,7,23,0,50,3,1 -
以贞强阳: data segment ary db 5,12,13,6,7,23,0,50,3,1 org 1000h max db ?data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov cx,10 mov si,offset ary mov di,1000h mov al,ds:[si] mov byte ptr ds:[di],al s:mov al,ds:[si] cmp ds:[di]...

阜宁县15319187359: 汇编语言中ary单元是什么意思 -
以贞强阳: 程序里面一个数组吧,你看看最开始的伪指令里面的定义,汇编里面没有默认叫这个名字的

阜宁县15319187359: 汇编语言编程 求大虾帮忙
以贞强阳: STA SEGMENT DW 40H DUP(?) TOP LABEL WORD STA ENDS DATA SEGMENT ARY DB 1,2,3,3 SUM DW 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE,SS:STA,DS:DATA MAIN PROC FAR MOV AX,STA MOV SS,AX LEA SP,...

阜宁县15319187359: 汇编语言程序运行时,随意从键盘输入数字0,1,2,3,分别对应往屏幕输出A,D,X,Z -
以贞强阳: DATAS SEGMENT data1 db 'A','D','X','Z' DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX mov cx,4 ;循环4...

阜宁县15319187359: 汇编语言中DB 3DUP(0)是什么意思?
以贞强阳: DB是定义的字节型,也就是说内存中是以八位二进制为单位的;DUP(0)的形式有时会是DUP(?),也就是事先在内存开辟一段预留空间.

阜宁县15319187359: 汇编语言中db是什么意思 -
以贞强阳: 定义一个字节的意思

阜宁县15319187359: 用汇编语言编程,将8位寄存器(如AL)中的数值以十进制的形式显示在计 -
以贞强阳: code segment assume cs:code org 100h start:push cs pop ds push cs pop es mov al,99 call dispnum mov ah,4ch int 21h dispnum proc near push ax push bx push cx push dx push si push di push bp pushf ; 将要显示的数据放入AL中 mov ah,0 mov ...

阜宁县15319187359: 汇编语言 -
以贞强阳: (1)定义一个字节区域,第一个字节的值为20,其后跟20个初值为0的连续字节.db 20,20 dup(0) (2)定义一个以“S”为结束符的字符串,该串中含有换行符和回车符.db 'Welcome!',13,10,'$' (3)定义100个字,其初值为0. dw 100 dup(0)

阜宁县15319187359: 汇编语言的基本数据类型
以贞强阳: 汇编语言所用到基本数据类型为:字节、字、双字等这些数据类型在以后章节中都有相应类型介绍说明符下面对它们进行最基本描述 1、字节 个字节有8位 2进制组成其最高位是第7位最低位是第0位如右图所示在表示有符号数时最高位就是符号...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网